如何从Python / Selenium的下拉菜单中选择一个元素?

时间:2013-06-07 01:15:50

标签: python selenium

我已经通过一些解决方案来选择下拉元素,但它们都不适用于我。

这是下拉列表的html。

<div class="goog-inline-block goog-flat-menu-button" role="button" style="-moz-user-select: none;" tabindex="3" aria-haspopup="true">
    <div class="goog-inline-block goog-flat-menu-button-caption">Resolved</div>
    <div class="goog-inline-block goog-flat-menu-button-dropdown">&nbsp;</div>
</div>

我尝试通过xpath和链接文本找到下拉列表但没有成功。

编辑:这是我正在使用的代码

import contextlib
import selenium.webdriver as webdriver
import selenium.webdriver.support.ui as ui
from selenium.webdriver.common.keys import Keys
import re
with contextlib.closing(webdriver.Firefox()) as driver:
    driver.get("https://websitename.com/#ticket/123456")
    wait = ui.WebDriverWait(driver, 30)
    wait.until(lambda driver: driver.find_element_by_xpath("//div[@class='goog-inline-block goog-flat-menu-button"))
    driver.find_element_by_xpath("//div[@class='goog-inline-block goog-flat-menu-button").click()
    driver.find_element_by_xpath("//div[@class='goog-inline-block goog-flat-menu-button").send_keys("R")
    wait6 = ui.WebDriverWait(driver, 30)

代码应该将选定的下拉列表元素从已分配更改为已解决。

2 个答案:

答案 0 :(得分:0)

你尝试了什么xpath?

我能看到的最简单的是:

driver.find_element_by_xpath("//div[contains(@class, 'goog-flat-menu-button-dropdown')]")

但是我对你的“选择”请求感到有些困惑,因为这不是select因素,所以我很抱歉,我不确定我能帮到那里。

借助CSS Selector

尝试下面给出的方法
driver.find_element_by_cssselector(".goog-flat-menu-button > .goog-flat-menu-button-dropdown").click();

我确信上面的CSS Selector可以正常工作。

答案 1 :(得分:0)

首先展开下拉菜单(xpath = // div [@ class ='goog-inline-block goog-flat-menu-button'),然后单击选项将其选中。

这两个操作都可以通过在Selenium IDE中单击来完成。
如果点击不起作用,请尝试 clickAt 定位器。