我正在尝试使用 Python-Selenium 从纽约马拉松下载运行者信息(参见: http://results.nyrr.org/event/M2016/finishers )。我想按性别和年龄组过滤这些信息,所以我编写了以下代码:
browser = webdriver.Chrome()
browser.get('http://results.nyrr.org/event/M2016/finishers')
browser.maximize_window()
gender_menu = browser.find_element_by_xpath("//div[@class='dropdown dropdown-
main short-filter']")
gender_menu.click()
gender_menu.find_element_by_xpath("//ul[@role='menu']/li[3]").click()
age_menu = browser.find_element_by_xpath("//div[@class='dropdown dropdown-
main short-filter ages-filter']")
age_menu.click()
age_menu.find_element_by_xpath("//ul[@role='menu']/li[3]").click()
问题是 age_menu.find_element_by_xpath("//ul[@role='menu']/li[3]").click()
部分给了我异常(exception)“Element Not当我使用 /li[1]
、/li[2]
或 /li[3]
时可见”,但当我使用时不可见/li[4]
或更高的索引。
.click
是否会给出此异常,因为我在选择性别时也使用了它?请注意,性别有 3 个选项,从第四组开始我只能按年龄组进行筛选。任何帮助将不胜感激!
最佳答案
不确定以下实现是否是您正在寻找的,但它对我有用
age_menu = browser.find_element_by_xpath("//div[@class='dropdown dropdown-
main short-filter ages-filter']")
age_menu.click()
ages = age_menu.find_elements_by_css_selector('ul[role="menu"]>li>a')
for age in ages:
if age.text == 'AGE: 20-24':
age.click()
break
关于javascript - 使用Python-Selenium过滤信息时点击不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45827007/