如何迭代具有相同id的xpath

时间:2017-12-05 16:03:41

标签: python selenium-webdriver

如何迭代具有相同ID的xpath

我的代码:

if data3 == 'Passed':
    elem2 = driver.find_elements_by_xpath('(//*[@id="questionsTable"]/tbody/tr[1]/td[2]/div/div/span[1]/input)[1]')
    for span in elem2:
        span.click()
    print(data3)~working

if data3 == 'Passed':
    elem2 = driver.find_elements_by_xpath('(//*[@id="questionsTable"]/tbody/tr[1]/td[2]/div/div/span[1]/input)[j]')
    for span in elem2:
        span.click()
    print(data3)

j=j+1〜无法正常工作

并且代码需要更多时间来执行,但第一种方法不是。

1 个答案:

答案 0 :(得分:0)

您将j作为字母的一部分存储为字母而非变量,因此j=j+1将无效。

尝试使用字符串格式

j的值添加到xpath
'(//*[@id="questionsTable"]/tbody/tr[1]/td[2]/div/div/span[1]/input)[{0}]'.format(j)

如果j的值为5,则上述字符串格式将返回

'(//*[@id="questionsTable"]/tbody/tr[1]/td[2]/div/div/span[1]/input)[5]'