【发布时间】:2016-06-01 14:36:12
【问题描述】:
我在单击使用 Selenium 和 Java 的元素时遇到问题。这是桌子的样子。
<tr class="even">
<td class="linked-item">
<a title="Imported Gatekeeper" href="/rss-servlet/remotesupport/viewgatekeeper.action?siteId=20">SJHS_OK - Technology Center - (CWx Network Connectivity)</a>
</td>
</tr>
<tr class="odd">
<td class="linked-item">
<a title="Imported Gatekeeper" href="/rss-servlet/remotesupport/viewgatekeeper.action?siteId=26">SJHS_OK - Technology Center - (CWx Network Connectivity) - Backup</a>
</td>
</tr>
我正在尝试选择第一个元素 SJHS_OK - Technology Center - (CWx Network Connectivity),它是指向另一个页面的链接。这只是代码的一部分,还有很多。
当我尝试使用 contains 时出现问题,我的 xpath 看起来像这样:
//*[@title='Imported Gatekeeper'][contains(.,'SJHS_OK - Technology Center - (CWx Network Connectivity)')][not(contains(.,'Backup'))]
有时当我将它放入 firepath 时,它会工作并找到元素,有时却不会。不知道为什么它并不总是有效。
我的 Java 代码如下所示:
String gatekeeper = "SJHS_OK - Technology Center - (CWx Network Connectivity)"
DRIVER.findElement(By.xpath("//*[@title='Imported Gatekeeper']"+gatekeeper+"[not(contains(.,'Backup'))]")).click();
我这样做是为了可以轻松更改网守变量并选择不同的网守。门卫将从 Excel 工作表中拉出。
任何关于此处错误的帮助将不胜感激,或者我可以通过另一种方式找到可以通过变量更改的元素来单击它。
【问题讨论】:
-
可能会在程序中引入等待或睡眠并尝试