2

我有以下 HTML 代码,我需要选择突出显示的元素。如果菜单突出显示,我想选择菜单中的按钮而不是菜单!如果菜单是运动场,我想选择它。

<menu id="apl" class="highlight" widgetid="apl">
<button id="navi" selectable="true" widgettype="button" widgetid="audio_radio_apl_navi">
<button id="audio" class="highlight" selectable="true" widgettype="button" widgetid="audio_radio_apl_audio">
<button id="tel" selectable="true" widgettype="button" widgetid="audio_radio_apl_tel">
<button id="video" selectable="true" widgettype="button" widgetid="audio_radio_apl_video">
<button id="system" selectable="true" widgettype="button" widgetid="audio_radio_apl_system">
<button id="net" selectable="true" widgettype="button" widgetid="audio_radio_apl_net">
</menu>
<menu id="plf" widgetid="plf">
<img src="img/plf_radio.png"/>
</menu>

到目前为止,我的代码是:

focusedElement = driver.findElement(By.xpath("//*[contains(@class,'highlight')]"));

这让我得到突出显示的菜单,但我需要按钮!有任何想法吗?

4

5 回答 5

4

try this one

focusedElement = driver.findElement(By.xpath("//button[@class='highlight']"));

as simple as it can get or

Select selectBox = new Select(driver.findElement(By.xpath("//menu[@id='apl']")));
于 2013-04-12T07:08:06.793 回答
0

如果我正确理解了您的问题,则此 XPath 应该适用于您提供的示例。

//menu[@class='highlight']//button[@class='highlight']

它将寻找一个包含一个<menu>withclass='highlight'<button>class='highlight'

于 2013-04-12T06:58:04.847 回答
0

检查突出显示的元素的 dom 是否已更改。有时它是由javascript触发的,并创建一个新元素,这很难测试。或者如上所述的Iframe :D

于 2013-04-12T12:42:59.520 回答
0

你需要条件语句:你应该检查元素是否"//menu[@id='apl']/button[@class='highlight']"存在,如果存在,点击它,如果不存在,然后点击"//menu[@id='plf']"

于 2013-04-12T14:36:14.647 回答
0
focusedElement = driver.findElement(By.xpath("//menu[@id='apl']/button[2]"));
于 2015-09-23T12:41:48.747 回答