使用Selify和Python选择选项
问题描述
我知道有几个Selence选项选择的例子。然而,我仍然不能在一个特定的网站中选择一个。 https://www.gks.ru/dbscripts/munst/munst20/DBInet.cgi 我想在左上角的选择栏中选择Excel选项。 该HTML是n个附件
我试着用这种方式接近酒吧
for option in el.find_elements(By.TAG_NAME,'option'):
print(option.text)
if option.text == 'CSV':
option.click() # select() in earlier versions of webdriver
break
我还使用了FIND_ELEMENTS BY CLASS和css_selector
然后我使用
select = Select(driver.find_element(By.TAG_NAME,'Select'))
select.select_by_visible_text('Excel')
它也找不到该元素
谁能帮帮忙?
解决方案
要使用html-select从html-select标记中选择文本为select-options的WebDriverWait,您需要为element_to_be_clickable()
诱导WebDriverWait,您可以使用以下任一Locator Strategies:
使用
CSS_SELECTOR
:select = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select.Select[name='Format']")))) select.select_by_visible_text("CSV")
使用
XPATH
:select = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//select[@class='Select' and @name='Format']")))) select.select_by_visible_text("CSV")
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import Select
引用
您可以在以下位置找到几个相关讨论:
- How to select an option from the dropdown menu using Selenium and Python
相关文章