gpt4 book ai didi

Java 使用 selenium webdriver 处理上一页和元素

转载 作者:行者123 更新时间:2023-12-03 11:12:31 25 4
gpt4 key购买 nike

我有一个应用程序,需要 Selenium 导航到下一页并验证是否找到所需信息,未找到它然后返回同一页面,然后单击下一个用户信息并验证是否找到所需信息,然后继续,直到我们找到用户链接。

我的过程:我创建了所有用户链接的列表来运行增强 for 循环。现在,当用户单击第一个用户链接时,如果未找到信息,selenium 将返回同一页面,并且当尝试单击第二个用户时,它会给出异常 'org.openqa.selenium.StaleElementReferenceException:过时的元素引用:元素是未附加到页面文档'。我尝试使用 back() 方法但不起作用。有什么解决办法吗?

谢谢,卡里姆

最佳答案

StaleElementReferenceException 出现,因为 DOM 元素是 destroyed and recreated当您尝试返回时。

因此,我建议您从原始页面获取用户链接的所有 href 属性,并导航到每个链接,而不是单击尝试单击链接一对一,这将始终抛出 StaleElementReferenceException

下面是获取页面中所有链接列表的方法(当然你可以缩小你需要的元素;这只是一个例子):

    //Getting the list of all links in the page
List<WebElement> list = driver.findElements(By.tagName("a"));

//Getting the "href" attribute of each elements and putting them into another list
List<String> href_links = null;
for(WebElement link:list){
href_links.add(link.getAttribute("href"));
}

//Navigating through each links
for(int i=0;i<href_links.size();i++){

driver.get(href_links.get(i));
}

关于Java 使用 selenium webdriver 处理上一页和元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27510191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com