微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Xpath不适用于Selenium

我正在尝试为旧系统构建测试. 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));

但是硒没有找到这种元素.

如果改为

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实现问题.

我正在使用Selenium WebDriver(2.37.1)和IE Driver.

解决方法:

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

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

使用和基本相同所以结果在这里应该是正确的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐