python-3.x - 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 循环中而是单独尝试它们时它就起作用了。知道为什么会这样吗?
解决方案
似乎问题在于/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)
推荐阅读
- c - 优化级别的宏 (ARMCC V6)
- python-3.x - selenium 无法定位元素 - 我试过按名称查找、按类名查找、按 xpath 查找,但都返回无法定位元素
- html - 如何在 css3 中缩小一个元素同时放大另一个元素
- sql - 大文件导出到 postgreSQL
- python - 如何根据 Python/pandas 中的前缀从字符串中提取某些值?
- javascript - 笑话导入语句:'TypeError:无法设置属性'fillStyle'为空'
- python - 如何在子目录中搜索特定文件?
- c# - 为 REST Api C# 配置身份
- flutter - 显示更大的图标 [Flutter]
- python - 如何从 tkinter 中的不同类访问变量和函数?