[英]selenium webdriver xpath generation
我想基于第一列值(xyz)创建一个用于单击“run”(第4列)的xpath。 下面的xpath不起作用。 你能建议一种更好的编写xpath的方法吗?
//table/tbody/tr/td[text()='xyz fix']/parent::tr/td[4]
<div id="main">
<table class="FixedLayout" width="1000px">
<tbody>
<tr></tr>
<tr>
<td class="RowHeight">
<a href="/TestPass/View/373">xyz</a>
</td>
<td>xyz fix</td>
<td>1125</td>
<td>
<a href="/Instance/Create?suiteId=373">Run</a>
</td>
</tr>
<tr>
<td class="RowHeight">
<a href="/TestPass/View/372">abc</a>
</td>
<td>abc fix</td>
<td>1125</td>
<td>
<a href="/Instance/Create?suiteId=372">Run</a>
</td>
</tr>
</tbody>
</table>
</div>
我不明白你为什么不行。 请说明“不起作用”的含义。 NoSuchElementException
? ElementNotVisibleException
? 错误的XPath? 没有点击链接或什么?
同时,尝试以下XPath(但问题可能是您的Selenium代码而不是XPath):
这里我假设您想要<a>
链接而不是<td>
,因为您提到要单击它。
使用XPath谓词:
//*[@id='main']//table/tobdy/tr[td[text()='xyz']]/td[4]/a
将XPath谓词与属性选择器一起使用以避免使用索引。
//*[@id='main']//table/tobdy/tr[td[text()='xyz']]//a[contains(@href, 'Instance/Create')]
使用..
来获取父母
//*[@id='main']//table/tobdy/tr/td[text()='xyz']/../td[4]/a
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.