- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试单击循环内的分页。
这是我的代码:
WebElement pagination = d.findElement(By.xpath("/html/body/div[9]/div[1]/div[3]/div/div/div[2]/ul"));
List < WebElement > allPaginations = pagination.findElements(By.tagName("a"));
WebElement title = d.findElement(By.linkText(">"));
System.out.println(allPaginations.size());
if (allPaginations.size() > 0)
{
System.out.println("Pagination exists");
for (int i = 0; i < allPaginations.size(); i++)
{
allPaginations = pagination.findElements(By.tagName("a"));
Thread.sleep(3000);
allPaginations.get(i).click();
d.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);
List < WebElement > ngo_Names = d.findElements(By.xpath("/html/body/div[9]/div[1]/div[3]/div/div/div[2]/table/tbody/tr/td[2]"));
System.out.println(ngo_Names.size());
//System.out.println(i);
}
}
else
{
System.out.println("Pagination doesn't exists");
}
但是在尝试第二次单击时,我遇到了无法修复的异常。有关如何解决此问题的任何建议。提前致谢
编辑:1
这是我遇到的异常:
Exception in thread "main" org.openqa.selenium.StaleElementReferenceException: The element reference of <ul class="pagination"> stale; either the element is no longer attached to the DOM, it is not in the current frame context, or the document has been refreshed
For documentation on this error, please visit: http://seleniumhq.org/exceptions/stale_element_reference.html
Build info: version: '3.5.2', revision: '10229a9020', time: '2017-08-21T17:54:21.164Z'
System info: host: 'SAURABH', ip: '192.168.0.205', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_151'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{moz:profile=C:\Users\Saurabh\AppData\Local\Temp\rust_mozprofile.m5FGXXXy6WIb, rotatable=false, timeouts={implicit=0, pageLoad=300000, script=30000}, pageLoadStrategy=normal, moz:headless=false, platform=ANY, moz:accessibilityChecks=false, acceptInsecureCerts=false, browserVersion=57.0.4, platformVersion=10.0, moz:processID=4752, browserName=firefox, javascriptEnabled=true, platformName=windows_nt, moz:webdriverClick=false}]
Session ID: d3be2955-cc46-4884-aff2-b54ca73ccc37
*** Element info: {Using=tag name, value=a}
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:185)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:120)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:641)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:275)
at org.openqa.selenium.remote.RemoteWebElement.findElements(RemoteWebElement.java:194)
at org.openqa.selenium.remote.RemoteWebElement.findElementsByTagName(RemoteWebElement.java:271)
at org.openqa.selenium.By$ByTagName.findElements(By.java:327)
at org.openqa.selenium.remote.RemoteWebElement.findElements(RemoteWebElement.java:170)
at ngpdarpan.Pagination.DataPull(Pagination.java:74)
at ngpdarpan.Pagination.main(Pagination.java:35)
最佳答案
该错误表明 pagination
不再位于 DOM 中。解决办法很简单,只需在循环中再次查找即可。
WebElement pagination = d.findElement(By.xpath("/html/body/div[9]/div[1]/div[3]/div/div/div[2]/ul"));
List < WebElement > allPaginations = pagination.findElements(By.tagName("a"));
WebElement title = d.findElement(By.linkText(">"));
System.out.println(allPaginations.size());
if (allPaginations.size() > 0)
{
System.out.println("Pagination exists");
for (int i = 0; i < allPaginations.size(); i++)
{
pagination = d.findElement(By.xpath("/html/body/div[9]/div[1]/div[3]/div/div/div[2]/ul"));
allPaginations = pagination.findElements(By.tagName("a"));
Thread.sleep(3000);
allPaginations.get(i).click();
d.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);
List < WebElement > ngo_Names = d.findElements(By.xpath("/html/body/div[9]/div[1]/div[3]/div/div/div[2]/table/tbody/tr/td[2]"));
System.out.println(ngo_Names.size());
//System.out.println(i);
}
}
else
{
System.out.println("Pagination doesn't exists");
}
关于java - 无法解决循环中的 "Stale element reference exception",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48334094/
已修复:这是一个 known bug在 maven-compiler-plugin 3.1 中 我正在将 1000 多个 java-sources 项目的基于 ant 的构建转换为 maven。到目前
我如何强制 Terraform 从头开始重建其计划和 tfstate 文件? 我正在考虑将我的 IAC 从 GCP 的 Deployment Manager 迁移到 Terraform,所以我想我
我们正在使用Varnish缓存6.2来位于WebAPI后端的前面。 后端会在某些请求上向后发送一个缓存控制 header ,以便我们可以缓存更长的时间。 但是-如果后端出现故障并保持故障状态,我们将在
我需要从代码访问folderId: { "folderType": 3, "createdDate": "02.09.2014 11:57:28.UTC",
我正在开发一个 Spring-MVC 应用程序,在该应用程序中我试图从数据库中删除一个对象。前几天,突然出现这个错误,现在我无法删除。我在网上检查了,但我找不到我做错了什么,并且所有解决方案似乎都不起
我用 python 用 selenium 编写了一个脚本。该脚本应该单击网页中的某些链接。当我运行脚本时,它确实单击第一个链接,然后抛出错误陈旧元素引用:元素未附加到页面文档,而不是追逐下一个链接。在
Cloudflare 记录了 Cache-Control 的指令列表 header ,包括 stale-while-revalidate . stale-while-revalidate= When
我们面临一个 memcached(Redhat 上的 v1.4.4)问题,准确描述如下: 通过 memcached 中一致的 ketama 散列,给定 key 所在的位置没有严格的状态。如果缺乏最新的
我最近开始使用我的 Android JNI 应用程序以 API 级别 14 为目标,并立即发现描述的问题 here . 无法通过显式管理本地引用来解决问题(在我的实验结束时发现本地引用表溢出),我决定
我有以下网络驱动程序功能: this.clickButton = async function () { try { var buttonElement = await driver.fi
我有一个表 (MySQL),其中有一行。 我可以很好地阅读它: self._session.query(Automatic).\ filter(Automatic.do_wh
我知道这段代码是正确的(除了 delete 没有完成): #include #include #include #include std::atomic ptr; int data; void
“陈旧”的 git 分支是我听过很多次的术语。我知道这与被认为不太有用或无用的分支有关,但找不到确切的定义。什么是“过时的”git 分支? 最佳答案 关于“陈旧”的最古老的引用文献是在 commit
我正在尝试从 Datepicker 中选择日期。以下是代码 WebDriver d=new FirefoxDriver(); Actions a=new Actions(d); String date
我很好奇 stale=update_after CouchDB View API 的功能有效。 我可以看到 here它返回陈旧的结果,然后更新 View : If stale=ok is set, C
我正在使用 RestTemplate 和 ConnectionPooling,使用 PoolingHttpClientConnectionManager 如下代码: PoolingHttpClient
代码 1: element(by.id('myButtonId')).click(); return element(by.id('myValidationSummaryId')).getText()
我正在尝试单击循环内的分页。 这是我的代码: WebElement pagination = d.findElement(By.xpath("/html/body/div[9]/div[1]/div[
在我的 post_index 操作中,我生成了不同类型的“@posts”,例如.. def index case params[:listing_type] when "all"
我编写了一个java应用程序,它首先在启动时创建一个连接池,然后在每次刷新期间,从池中获取连接,使用它,然后关闭它。当我与网络和用户断开连接时,就会出现问题按刷新按钮。应用程序似乎进入挂起状态(从我的
我是一名优秀的程序员,十分优秀!