如何使用Python迭代xml路径字符串(表行--tr[1]、tr[2]、tr[3]…)



我有这个html xml路径:

"//*[@id="example"]/tbody/tr[2]/td[1]"

它必须由我的find_element((算法作为字符串处理但我需要在tr[2](例如,tr[2]、tr[3]、tr[4]…(处进行迭代,以便我的网络抓取算法可以扩展html表中的可点击按钮。

实现这一目标的一些策略/实现是什么?

(我正在为webscraper使用Selenium python库(

您可以使用以下代码获得所有所需元素(行(的集合:

driver.find_elements_by_xpath("//*[@id="example"]/tbody//tr/td[1]");

然后,您可以对元素集合进行迭代,并执行所需的操作。

如果你想循环通过它,那么

只需使您的xpath动态如下:

我假设你有5排。

for i in range(5):
driver.find_element_by_xpath("//*[@id="example"]/tbody/tr['"+i+"']/td[1]").click()   

或者使用WebDriverWait,它将是:

wait = WebDriverWait(driver,30)
for i in range(5): 
wait.until(EC.element_to_be_clickable((By.XPATH, "//*[@id="example"]/tbody/tr['"+i+"']/td[1]"))).click()  

注意,如果你将不得不进口这些:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 

最新更新