1

类似的问题已经被问了一百万次,但我仍然没有找到解决这个问题的正确方法。

第一个问题:遍历 Selenium 中的 Webelements 列表是不好的做法吗?

我是 Java 列表的忠实粉丝。通常我会找到我感兴趣的所有 WebElement 并对其进行迭代。但是如果你这样做,那么你经常会得到一个 StaleElementException。我知道 StaleElementException 是什么,但在仍然使用列表的同时我无法找出防止它们的正确方法。

在以下情况下你们会怎么做:我的 web 应用程序中有一堆图块,我需要单击并检查结果是否正常。我很想做这样的事情,但它通常会导致 StaleElementException:

List<WebElement> tiles = driver.findElements(By.className("box"));
for (WebElement tile: tiles) {
    //at this point I already get a stale element exception quite often.
    //How can I use Lists without getting a stale element at all?

    tile.click()
} 

有没有办法仍然使用列表并且永远不会获得过时的元素?我可以在不使用“By”而是使用“旧”WebElement 的情况下重新查找元素吗?

就像是:

WebElement newWebElement = driver.findElement(oldWebElement)

否则,我什至如何在我的代码中描述从我拥有的那十几个图块中找到一个旧的 WebElement,因为它们没有唯一的 ID?

4

0 回答 0