【发布时间】:2019-03-22 04:01:16
【问题描述】:
我正在尝试从此页面创建 WebElements 的 ArrayList:
如果所有元素都显示出来了,就可以添加到ArrayList中了。
ArrayList<WebElement> TodoArray = new ArrayList<WebElement>();
TodoArray.add(todo1);
如果我从网页中删除其中一个元素(不是代码),我会在运行测试用例时收到此错误:
org.openqa.selenium.NoSuchElementException: Unable to locate element: *[name='todo[9]']
有没有办法绕过这个错误,强制java跳过丢失的元素,但继续添加显示的元素?
我的代码非常简单。我正在使用 JUnit 来运行我的测试用例。使用 @FindBy 注释正确定义了元素。
@FindBy(name="todo[1]")
WebElement todo1;
我尝试使用 Try/Catch 包围变量并使用 NoSuchElementException,但我不确定如何格式化它。在这种情况下可以使用“继续”关键字吗?
希望我提供了足够的信息。任何帮助,将不胜感激。谢谢!
【问题讨论】:
-
使用 try-catch:w3schools.com/java/java_try_catch.asp
-
你能说得更具体点吗?每当我使用 Try/Catch 时,我的代码都会停止,我确信我做错了。尽管缺少元素,我希望能够继续执行。如果缺少该元素,则不应将其添加到 ArrayList。
-
欢迎来到 SO。为什么要对列表项进行硬编码,我会从应用程序中获取
to do元素的动态列表。像这样的东西 `ListtodoItems = driver.findElements(By.cssSelector("generic css goes here")); -
@Few_Line 发布你所有的代码
标签: java maven selenium junit page-factory