HTML代码如下所示:
<td id="id26a" class="doclisting-name link" style="width: 319px; min-width: 319px;"> <span id="id26b" title="Document"> <span class="ie-fallback-marker"> words </span></span></td>
我不能搜索元素ID,因为它一直在变化.我不能搜索元素的类,因为可以改变位置的倍数.
我想要能够点击SPAN标签之间的“WORDS”.这是可以吗
这是我到目前为止使用的,但是似乎都没有起作用:
//string document is words. public void testscenario123(String document) throws Throwable { Thread.sleep(3000); driver.findElement(By.linkText(document)).click(); }
要么
//string document is words. public void testscenario124(String document) throws Throwable { Thread.sleep(3000); driver.findElement(By.xpath("//*[contains(@span,'"+document+"')]")).click(); }
解决方法
您可以通过文本选择xpath,并且标准化空间将剥离空白:
//string document is words. public void testscenario124(String document) throws Throwable { Thread.sleep(3000); driver.findElement(By.xpath("//*[normalize-space()='"+document+"']")).click(); }
您也可以考虑等待该元素出现,而不是声明明确的睡眠