我正在尝试在Xpath上插入变量“ i”,但遇到了麻烦。
这是我的代码:
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):
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句