繁体   English   中英

使用 selenium Python 库单击下拉菜单中的项目

[英]Click an item in a drop-down menu using selenium Python library

我正在尝试在下拉菜单中选择一个元素。 我尝试使用“driver.find_element_by_xpath”调用来定位列表中的项目。 问题是我不能选择它。 我尝试了“.click()”调用,但错误表明该元素不可交互。 如何根据下图中的 HTML 代码选择项目?

在此处输入图片说明

试试这个点击 ul 标签,然后点击你想要选择的下拉 li。

如果使用 JS,请单击下拉列表并获取 li 值,否则,您可以直接单击与您的值匹配的 li 值

    element_dropdown = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CLASS_NAME, 'rcbList')))
   current_user_driver.execute_script("arguments[0].click();",element_dropdown)

    all_li_dropdown = WebDriverWait(driver, 10).until(
        EC.presence_of_all_elements_located((By.CLASS_NAME, 'rcbItem')))

    for single_li in all_li_dropdown:
        li_value = single_m_li.get_attribute("innerHTML")
        if li_value == "your_value":
            driver.execute_script("arguments[0].click();", single_li)
            break

你应该粘贴你用来帮助理解你在做什么的代码。

但仅凭您的解释,我会说您可能需要在保管箱中单击,以便列表可见且可单击。

然后单击您想要的项目。

Python

driver.find_element_by_name('rcbScroll rcbWidth').click()
driver.find_element_by_name('rcbHovered').click()

爪哇

driver.findElement(By.className("rcbScroll rcbWidth")).click();
driver.findElement(By.className("rcbHovered")).click();

我找到了解决办法。 由于下拉菜单被编码为“输入”HTML 标记,因此传统的选择 Python 方法不起作用,因为它仅适用于“选择”HTML 标记。 但是 .send_keys 方法工作得很好。 因此,下面的简单代码可以解决问题:

variable_name = driver.find_element_by_xpath('xpath of an <input> element in HTML code')
variable_name.click() #Clicks on the drop down button
variable_name.send_keys("text of an option in the drop down list") #sends text of an option in the drop down

暂无
暂无

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

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