Javascript 使用Python Selenium筛选信息时,单击不起作用

Javascript 使用Python Selenium筛选信息时,单击不起作用,javascript,python,html,selenium,Javascript,Python,Html,Selenium,我正在尝试使用Python Selenium从纽约马拉松(见:)下载跑步者的信息。我想按性别和年龄组过滤这些信息,因此我编写了以下代码: browser = webdriver.Chrome() browser.get('http://results.nyrr.org/event/M2016/finishers') browser.maximize_window() gender_menu = browser.find_element_by_xpath("//div[@class='dropd

我正在尝试使用Python Selenium从纽约马拉松(见:)下载跑步者的信息。我想按性别和年龄组过滤这些信息,因此我编写了以下代码:

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\u菜单。通过xpath(“/ul[@role='menu']/li[3]”查找元素。单击()
会在我使用
/li[1]
/li[2]
/li[3]
时显示“元素不可见”,但在我使用
/li[4]
或更高的索引时不会显示


是不是
。单击
会出现此异常,因为我在选择性别时也会使用它?请注意,性别有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

如果你正在抓取数据,为什么不使用Beautiful Soup?@sircapsalot因为我首先需要点击每个跑步者来加载数据,Beautiful Soup无法做到这一点(据我所知)ok:)我只是想知道,因为我不知道你正在测试的应用程序。如果您需要实际触发ajax,那么是的。硒是绝对合适的,这是有效的!我不明白为什么这和我做的有这么大的不同