【问题标题】:Selecting options using Selenium and Python使用 Selenium 和 Python 选择选项
【发布时间】:2021-12-27 23:16:21
【问题描述】:

我知道有几个 selenium 选项选择的例子。尽管如此,我仍然无法选择一个特定的网站。 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')

它也找不到元素

有人可以帮忙吗?

【问题讨论】:

    标签: python selenium html-select webdriverwait select-options


    【解决方案1】:

    要使用Selenium标签中选择带有文本为CSV,您需要为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
      

    参考文献

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

    【讨论】:

    • 这里只是加点。这是一个下拉元素,所以我相信使用presenceOfElement 可以代替elementToBeClickablevisibilityOfElement
    • 遵循最佳实践是完全正确的。我只是过于谨慎了:/
    猜你喜欢
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 2021-12-06
    • 2017-02-23
    • 2020-05-15
    相关资源
    最近更新 更多