使用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

相关文章