gpt4 book ai didi

java - Xpath 不适用于 Selenium

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:56:17 25 4
gpt4 key购买 nike

我正在尝试为旧系统构建测试。 HTML 格式不正确。我需要识别并单击单选按钮。

html 看起来像这样:

...
<td class="tablerow" colspan="3">
<INPUT type=radio name="ticket" value="22" >ramdom1
<INPUT type=radio name="ticket" value="1" >ramdom2
<INPUT type=radio name="ticket" value="3" >ramdom3
<INPUT type=radio name="ticket" value="99" >ramdom4
</td>
...

我尝试使用 xpath 选择输入,如下所示:

String xpath = "//input[contains(@name, 'ticket') and contains(@value, '3')]";
WebElement rb = driver.findElement(By.xpath(xpath));

但是selenium没有找到这个元素。

如果改成

String xpath = "//input[contains(@name, 'ticket')]";
List<WebElement> rbs = driver.findElements(By.xpath(xpath));

String xpath = "//input[contains(@value, '3')]";
List<WebElement> rbs = driver.findElements(By.xpath(xpath));

有效,selenium 返回一个元素列表,包括我需要的元素。仅当我尝试在同一个 xpath 中使用这两个条件时才会出现问题。

当然,我可以遍历列表并测试每个值,但我想了解我是否做错了什么。由于 IE 没有原生的 xpath 支持,我认为这可能是一个 selenium 实现问题。

我正在使用带有 IE 驱动程序的 Selenium WebDriver (2.37.1)。

最佳答案

不确定这是否是 Selenium 实现问题,但这应该有效:

"//input[contains(@name, 'ticket')][contains(@value, '3')]"

的用法基本相同,所以这里的结果应该是正确的。

关于java - Xpath 不适用于 Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20355393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com