代码之家  ›  专栏  ›  技术社区  ›  mexicanRmy

Selenium Select不处理下拉元素

  •  1
  • mexicanRmy  · 技术社区  · 2 年前

    因此,我尝试运行以下代码,从下拉工具栏中选择一个选项:

    ## Drop-down menu
    time.sleep(5) # wait for element to load in page otherwise selenium won't be able to find it
    element_dropdown = driver.find_element("id","conference-dropdowns")
    element_dropdown.click()
    
    # Select visible text
    time.sleep(5)
    select = Select(element_dropdown)
    select.select_by_visible_text("Bulk Upload")
    

    UnexpectedTagNameException: Message: Select only works on <select> elements, not on <label>
    

    如何解决此问题?为什么我会出现这个错误?见下文结构。提前非常感谢。 enter image description here

    2 回复  |  直到 2 年前
        1
  •  1
  •   undetected Selenium    2 年前

    所需元素不在任何 标签,但它们在 <label>

    Bulk Upload

    所以你不能使用 Select()


    文本为的click元素 批量上载 你需要诱导 WebDriverWait element_to_be_clickable() locator strategy

    • XPATH :

      WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[@class='dropdown-submenu']//label[@class='submenu' and contains(., 'Bulk Upload')]"))).click()
      
    • 笔记

      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support import expected_conditions as EC
      
        2
  •  1
  •   JaSON    2 年前

    例外说明了一切:你可以使用 Select 仅适用于 <select> object . 只要试着

    • click()
    • wait 所需选项可点击
    • 取舍自由的