我正在尝试插入变量"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):
...