我想从隐藏的下拉框中选择选项,但我无法执行此操作。
我想要自动化的网站是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)
答案 0 :(得分:1)
实际上那些隐藏的下拉菜单对你没用。
nvFrame-selectBox-dropdown
类将为您提供可用于手动搜索的下拉列表。
当您点击任何下拉列表时,下拉列表选项html将变为类selectBox-dropdown-menu
。您可以在控制台中检查HTML的底部。
由于这些options
位于ul
和li
标记中,因此您无法使用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()
当您选择肉眼可见的选项时,这将非常有效,在某些情况下您可能需要滚动下拉列表。