【问题标题】:HOw can I continue my script if an element not found?如果找不到元素,我该如何继续我的脚本?
【发布时间】:2018-08-26 16:15:16
【问题描述】:

我必须根据测试数据多次运行我的逻辑。

在这里,在某些迭代中,很少有字段是可选的,所以我得到 No element found 异常,但我可以通过 TC,所以我想继续我的脚本。

在下一次迭代中,我的脚本应该再次查找该字段,如果它存在,它应该遵循路径 1 或路径 2。

我怎样才能做到这一点?

请帮忙...

【问题讨论】:

    标签: java selenium testing automation webdriver


    【解决方案1】:

    您必须使用 try catch 构造来捕获 noSuchElement 异常,并且在 catch 块中没有代码或在元素不存在时必须执行的代码。

    另一种选择是使用 findElements 而不是 findElement,这将为您提供一个列表。您现在可以检查列表是否为空,这意味着未找到该元素,当找到该元素时列表中有一个元素。使用 findElements 时不会抛出异常。

    【讨论】:

      【解决方案2】:

      使用 try/catch 块

      try {
          data = getElement(1);
          found = true;
      } catch (NoSuchElementException e) {
          found = false;
      }
      

      【讨论】:

      • 也是我的回答。
      【解决方案3】:

      您可以使用 if() {} else {} 条件来处理它。 或者您可以在缺少的字段中放置一些默认值。或者你可以使用异常处理概念 try {} catch() {} blocks..

      【讨论】:

      • 在前面的两个答案中已经提到了尝试捕获。 if else 条件无法处理异常。
      • 我们可以通过检查值是否存在来检查。如果存在,我们可以继续操作,否则我们可以跳过该操作。我们可以防止这种异常。
      • 据我了解,该元素在某些情况下不存在(HTML 中不存在)。要检查这一点,您将得到一个 noSuchElementException ,它只能通过 try catch 构造或使用 findElements 而不是 findElement 来管理。
      • 可能是我以不同的方式理解它。可以用他得到异常的代码来澄清。
      猜你喜欢
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 2020-07-10
      • 2018-05-26
      • 2019-09-28
      • 2015-12-05
      相关资源
      最近更新 更多