繁体   English   中英

似乎无法从下拉菜单中找到 select - Python Selenium

[英]Can't seem to select from drop down menu - Python Selenium

如标题所示,无论如何,我似乎都无法从该网站的下拉菜单中获得 select。

from selenium import webdriver
from selenium.webdriver.support.ui import Select

driver=webdriver.Chrome()
driver.get('https://assessing.nashuanh.gov/search.asp')

time.sleep(1)

select=Select(driver.find_element_by_xpath('//*[@id="cboSearchType"]'))
select.select_by_value('2')

首先,您必须处理页面中的框架。 看起来此下拉列表中没有值2 ,因此您必须传递一个有效值。

driver.switch_to.frame("middle")

select = Select(driver.find_element_by_xpath('//*[@id="cboSearchType"]'))
select.select_by_value('Parcel')

<option>元素的值/文本作为中的Owner位于<frame>中,因此您必须:

  • 诱导WebDriverWait使所需的帧可用并切换到它

  • 诱导WebDriverWait使所需元素成为可点击的。

  • 您可以使用以下任一定位器策略

    • 使用CSS_SELECTORselect_by_value()

       driver.get('https://assessing.nashuanh.gov/search.asp') WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"frame[name='middle']"))) Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select#cboSearchType")))).select_by_value("Owner")
    • 使用XPATHselect_by_visible_text()

       driver.get('https://assessing.nashuanh.gov/search.asp') WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//frame[@name='middle']"))) Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//select[@id='cboSearchType']")))).select_by_visible_text("Owner")
  • 注意:您必须添加以下导入:

     from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
  • 浏览器快照:

那双


参考

您可以在以下位置找到一些相关的讨论:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM