我是学习Selenium WebDriver和XPath的初学者。我正在尝试获取嵌套表的"<td>“元素,该元素包含字符串‘7-8-9’以下是HTML页面代码:
<!DOCTYPE html>
<head>
<title>Sample</title>
</head>
<body>
<table border = "2">
<tbody>
<tr>
<td>one</td>
<td>two</td>
</tr>
<tr>
<td>three</td>
<td>
<table border = 1">
<tbody>
<tr>
<td>1-2-3</td>
<td>4-5-6</td>
</tr>
<tr>
<td>7-8-9</td>
<td>10-11-12</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</body>
</html>这是测试代码:
WebElement cell3 = driver.findElement(By.xpath("//table/tbody/tr[2]/td[2]/table/tbody/tr[2]/td[contains(text() , '1-2-3'))]"));
System.out.println(cell3.getText());请帮帮我!谢谢
发布于 2015-02-09 14:39:56
首先,您不希望xpath做很多工作。因此,在编写xpath时,要考虑得更周到一点--您不需要在整个层次结构中找到使用xpath的元素。相对xpath对selenium来说就足够了。读取这
//tbody//td[contains(text(),'1-2-3')]发布于 2015-02-15 19:37:55
要想获得一个快速而肮脏的方法,该方法将是脆弱的,性能很差,但允许您运行测试,请在Firefox中打开页面,打开开发工具,在源查看器中找到元素,右键单击,应该有一个创建XPath查询的选项。
只是注意到问题中的“包含”,如果这很重要,那就忽略这个答案。
发布于 2016-07-15 05:58:04
我建议您只在没有xpath的情况下使用xpath
xpath中包含的使用:
https://sqa.stackexchange.com/questions/12100
复制相似问题