【问题标题】:Condition to loop providing false positives循环提供误报的条件
【发布时间】:2021-07-10 21:28:34
【问题描述】:

我的应用程序中有这个页面,该页面有一个表格,其中有一列包含一些链接文本。此列表是动态的,我正在尝试验证是否显示了特定的链接文本。即使链接文本不存在,它仍然会通过。感谢您的帮助。

    public void getMessage(String message) throws Exception {
    String expectedMessage= data.loadData(data.getMessages().getAbsolutePath()).getProperty(message);
    List<WebElement> tableLink = driver.findElements(By.className("messageLink"));

    for (WebElement element : tableLink) {

        if (element.getText().equals(expectedMessage))
            
        {
            System.out.println("Message Exists");

            return;

        }
    }

}

【问题讨论】:

  • 只是为了澄清我确实添加了一个打印语句,并看到预期的编辑检查之一不在 tableLink 列表中,而不是通过测试失败。我试图弄清楚为什么会这样。它让我发疯。
  • 按照评分最高的答案解决这个问题:stackoverflow.com/questions/11454798/…

标签: java list selenium loops conditional-statements


【解决方案1】:

我会在 for 循环中添加一个打印语句,以便查看 element.getText().equals(expectedMessage) 每次迭代产生什么,您的代码看起来很可靠,所以我认为 element.getText() 方法可能存在问题。如果您发布该方法的代码,我很乐意看看我是否抓住了一些容易错过的东西!

【讨论】:

    【解决方案2】:

    如果 tableLink 列表为空,您可能必须抛出异常。

    此外,您还可以考虑为意外输入抛出异常。

    【讨论】:

      猜你喜欢
      • 2018-01-24
      • 1970-01-01
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 2014-01-25
      • 2015-05-25
      相关资源
      最近更新 更多