下面是我正在努力工作的代码。
//Method to fetch all links from the sitemap container
public void GetAllLinks() {
WebElement pointer = LinksContainer;
String url = "";
List <WebElement> allURLs = pointer.findElements(By.tagName("a"));
System.out.println("Total links on the page: "+ allURLs.size());
for (int i=0; i<allURLs.size(); i++) {
WebElement link = allURLs.get(i);
url = link.getAttribute("href");
OpenAllLinks(url);
}
}
//Method to hit all the fetched URLs
public void OpenAllLinks(String linkURL) {
driver.get(linkURL);
}
我从一个站点Map页面获取所有锚元素,然后将所有这些元素放入一个列表中。然后,我使用 getAttribute(href)
. 在这里之前,代码运行良好。
但是,在这之后,我将这些URL作为参数传递到方法中 OpenAllLinks()
要逐个打开所有这些URL,请使用 driver.get()
. 代码一直工作到第一个链接,但一旦加载了第一个页面,就会出现stale元素异常。
1条答案
按热度按时间t1qtbnec1#
此时,您将离开显示所有这些链接的页面,所有web元素都将显示在该页面中
allURLs
列出过时的元素。您可以做的是首先提取所有链接并保存在列表中,而不是web元素,然后循环打开所有这些链接。
这样地: