我正在尝试使用Selenium选择一个值。
这是目标 HTML :
<div class="main_table">
<div class="fields filter_center clearfix" style="margin: 0 auto;">
<div class="form-group clearfix">
<div class="col-sm-8">
<select class="form-control input-sm js-example-basic-single" name="city">
<option style="padding: 3px;" value="213">New York</option>
<option style="padding: 3px;" value="2">Washington</option>
<option style="padding: 3px;" value="47">Los Angeles</option>
我的第一次尝试:
from selenium.webdriver.support.wait import WebDriverWait
region_element = Select(drv.find_element_by_tag_name("select"))
region_element.select_by_value("2")
这引起了
selenium.common.exceptions.ElementNotInteractableException: Message: Element <option> could not be scrolled into view
我的尝试2:
region_element = WebDriverWait(drv, 10).until(EC.element_to_be_clickable((By.XPATH, "//select[@name='city']")))
region_element = Select(region_element)
region_element.select_by_value("2")
再次:
selenium.common.exceptions.ElementNotInteractableException: Message: Element <option> could not be scrolled into view
尝试3(等待特定选项被点击):
region_element = WebDriverWait(drv, 10).until(EC.element_to_be_clickable((By.XPATH, "//select[@name='city']")))
WebDriverWait(drv, 10).until(
EC.element_to_be_clickable((By.XPATH, "//select[@name='city']/option[text()='Washington']")))
region_element = Select(region_element)
region_element.select_by_value("2")
再次:
selenium.common.exceptions.ElementNotInteractableException: Message: Element <option> could not be scrolled into view
您能帮我纠正这种情况吗?
答案 0 :(得分:1)
如果选项菜单没有隐藏在包装器中,请尝试使用其他下拉菜单或嵌套页面作为示例。
element = driver.find_element_by_xpath("//select[@name='city']")
actions = ActionChains(driver)
actions.move_to_element(element).perform()
或使用javascript执行程序
driver.execute_script("arguments[0].scrollIntoView();", element)