【问题标题】:Assert that element from List<webelement> contains some text断言 List<webelement> 中的元素包含一些文本
【发布时间】:2018-04-28 20:07:36
【问题描述】:

我不确定如何断言我有一个 webelements 列表,其中每个 webelements 都有文本 inside,并且我想验证这个 webelements 列表中是否存在一些文本。

我不确定在这种情况下这应该是什么样的断言。

【问题讨论】:

    标签: java selenium-webdriver automated-tests assert assertion


    【解决方案1】:

    简单的获取流,映射到字符串(文本)并检查是否有匹配:

    boolean anyMatch = webelements.stream()
      .map(WebElement::getText)
      .anyMatch(text -> "inside".equals(text));
    

    为了安全起见,过滤掉空值并修剪:

    boolean anyMatch = webelements.stream()
      .map(WebElement::getText)
      .filter(Objects::nonNull)
      .map(String::trim)
      .anyMatch(text -> "inside".equals(text));
    

    【讨论】:

    • 谢谢您的回复。我想把它放在断言中,那么我应该在 assertTrue 中使用它吗?
    • @pejas 很棒的答案 (+1)
    【解决方案2】:

    你可以这样做:

    public boolean isElementsContainsProvidedText(String text){
    
        List<WebElement> elements = driver.findElements(By.xpath("your_xpath_for_list"));
    
        return elements.stream().anyMatch(e->e.gettext().trim().equals(text));     
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 2017-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多