1

我查看了一些选择下拉元素的解决方案,但没有一个对我有用。

这是下拉菜单的 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)

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

4

2 回答 2

0

你试过什么xpath?

我能看到的最简单的是:

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

但是,我对您关于“选择”的要求有点困惑,因为这不是一个select要素,所以很抱歉,我不确定我能不能提供帮助。

在 CSS 选择器的帮助下尝试下面给出的方法

driver.find_element_by_cssselector(".goog-flat-menu-button > .goog-flat-menu-button-dropdown").click();

我确信上面的 CSS 选择器会起作用。

于 2013-06-07T07:58:26.307 回答
0

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

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

于 2013-06-07T13:07:02.670 回答