首页 > 解决方案 > Selenium 点击循环忽略了一些值

问题描述

我正在尝试运行代码:

for j in range(1,13):
    driver.find_element_by_xpath('//*[@id="gateway-page"]/body/table/tbody/tr[3]/td[2]/table/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr[2]/td/div/div[2]/ul/li['+str(j)+']').click()
    time.sleep(3)

点击这个网站上每一个令人满意的元素。但是它每次都会忽略一些元素,而当我不是在 for 循环中而是单独尝试它们时它就起作用了。知道为什么会这样吗?

标签: python-3.xseleniumautomated-tests

解决方案


似乎问题在于/ul/li['+str(j)+']您正在执行点击<li>标签,而实际链接位于其中。这就是为什么有时实际链接不会在没有任何错误的情况下收到点击,因为链接包含在<li>tag 中。

尝试找到实际的链接标签。使用下面的代码。我已经在我的系统上进行了测试。希望这会帮助你。

driver.get('http://catalog.sps.cuny.edu/preview_program.php?catoid=2&poid=607')
driver.implicitly_wait(10)
links = driver.find_elements_by_xpath("//div//h2[contains(.,'Electives')]/..//ul/li//span/a")

for link in links:
    link.click()
    time.sleep(3)

推荐阅读