Python/Selenium:在Xpath中插入一个迭代器



我正在尝试插入变量"i〃;在我的Xpath上,但我撞到了墙上。

这是我的代码:

for i in range(len(results_nbr)):
xpath = "//*[@id='w1']/div["
xpath += int(i)
xpath += "]/div/div[2]/h3"
elem = driver.find_element_by_xpath(xpath)
elem.click()
time.sleep(1) 

我使用的是selenium,如果代码中有如下变量,它就可以正常工作:

elem = driver.find_element_by_xpath('//*[@id="w1"]/div[1]/div/div[2]/h3')

请问我的代码出了什么问题?我尝试了int(I(和str(I(,得到了相同的结果。

我感谢你的帮助。感谢

第一点:使用字符串格式。Python中有很多可用选项:

- xpath = '//*[@id="w1"]/div[%s]/div/div[2]/h3' % i
- xpath = '//*[@id="w1"]/div[{}]/div/div[2]/h3'.format(i)
- xpath = f'//*[@id="w1"]/div[{i}]/div/div[2]/h3' # in Python 3.6 and later

第二点:在XPath中,索引从1开始。所以div[0]不起作用。尝试

for i in range(1, len(results_nbr) + 1):
...

相关内容

最新更新