【发布时间】:2013-12-19 18:15:12
【问题描述】:
我正在尝试为旧系统构建测试。 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 实现问题。
我正在使用 Selenium WebDriver (2.37.1) 和 IE 驱动程序。
【问题讨论】:
标签: java xpath selenium selenium-webdriver