没有定位器的元素的Webdriver可见性

时间:2013-06-19 11:06:03

标签: selenium-webdriver

我想使用以下代码检查标记内的字符串(客户端)文本:

boolean feedBack = driver.findElement(By.cssSelector("body")).getText().contains(client);

如果它返回true那么,有没有办法直接检查这个字符串的可见性(没有定位器)?

1 个答案:

答案 0 :(得分:1)

  1. 在文本节点中查找包含所需文本的元素:

    WebElement element = driver.findElement(By.xpath("//*[text()='" + client + "']"));
    

    如果需要,请改为使用normalize-space()contains()

    WebElement element = driver.findElement(By.xpath("//*[contains(text(),'" + client + "')]"));
    

    这将找到包含文本的最内层元素,而不是任何随机祖先。

  2. 通过

    检查是否可见
    element.isDisplayed()
    
  3. 请注意,您必须确保您的文字只出现在页面上一次,这样才可以。但是,该解决方案也可以轻松适应更多元素。