使用jQuery和Selenium WebDriver使用Python从隐藏的下拉框中选择选项

时间:2014-11-05 13:00:05

标签: jquery python selenium-webdriver

我想从隐藏的下拉框中选择选项,但我无法执行此操作。

我想要自动化的网站是www.geforce.com/drivers。在该页面中,我想自动执行手动驱动程序搜索'。我试图通过使用下面的代码从第一个下拉框中选择选项,但我无法做到。

driver.execute_script('document.getElementBYID('manualsearch-0').style='display.block');
select=Select(driver.find_element_by_id('manualSearch-0)
for o in select.options:
select.select_by_visible_text(o.text)

1 个答案:

答案 0 :(得分:1)

实际上那些隐藏的下拉菜单对你没用。

nvFrame-selectBox-dropdown类将为您提供可用于手动搜索的下拉列表。

当您点击任何下拉列表时,下拉列表选项html将变为类selectBox-dropdown-menu。您可以在控制台中检查HTML的底部。 由于这些options位于ulli标记中,因此您无法使用Select硒方法。

现在我们需要从所有结果中找到可见的ul。  我已经使用了第4个下拉列表,并在此示例中从底部选择了第3个选项。

driver.find_elements_by_css_selector(".nvFrame-selectBox-dropdown")[3].click()
time.sleep(2)
uls = driver.find_elements_by_css_selector(".selectBox-dropdown-menu")
for ul in uls:
    if ul.is_displayed():
        visible_ul = ul
        break
print visible_ul.text
visible_ul.find_elements_by_css_selector("li")[-3].click()

当您选择肉眼可见的选项时,这将非常有效,在某些情况下您可能需要滚动下拉列表。