【发布时间】:2018-01-23 10:13:26
【问题描述】:
我正在尝试在selenium 中编写此类应用程序。进入子页面,获取数据,返回,进入下一个子页面……
不幸的是,exception 出现在我面前
"org.openqa.selenium.StaleElementReferenceException: 元素为否 有效期更长”
好吧 - 重新加载后它是另一个页面。有什么想法吗?
代码:
List<WebElement> rows = driver.findElements(By.className("detail-card__heading"));
List<WebElement> cols=new ArrayList<WebElement>();
for(int i=0;i<rows.size();i++){
System.out.println("Nr oferty: "+i);
cols=rows.get(i).findElements(By.tagName("div"));
for(WebElement col:cols) {
System.out.print("cell value "+col.getText());
col.click();
}
driver.get(CurrentUrl);
}
【问题讨论】:
-
哪一行引发了错误?
-
页面切换后需要等待
-
子页面是什么意思?您是否尝试在数据表中移动?顺便说一句,Ankur 是对的,加载页面和填充 DOM 需要几秒钟。同样取决于 col.click 触发的内容,如果页面在下一次循环开始时尚未完成更新,它也可能导致超时问题。您可以尝试投入一些等待或子循环来寻找元素!= null。没有更多细节,很难提供更多帮助。
-
此代码与页面有关。 domiporta.pl/mieszkanie/…。这是一个房地产类型提供的列表。问题是 col.click();当我取消这条线时,一切都很好。但是这段代码是最重要的。 col.click() 在从报价中获取一些数据后进入报价(子页面),程序应该返回列表并进入下一个报价。但此时问题出现了——页面不再有效。
标签: java selenium selenium-webdriver webdriver staleelementreferenceexception