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标记之间的“单词”。这是可能吗?

这是我到目前为止使用的,但是似乎都不起作用:
//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,而normalize-space会去除空白:

  //string document is words.
 public void testscenario124(String document) throws Throwable {
    Thread.sleep(3000);
    driver.findElement(By.xpath("//*[normalize-space()='"+document+"']")).click();
}

您可能还希望考虑等待元素出现,而不是声明显式 sleep

关于java - 使用Selenium Webdriver(java)在SPAN标记之间单击文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22146950/

10-12 14:21