- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我面临陈旧元素异常的问题。我已经用谷歌搜索并在 stackoverflow 中找到了一些答案,但都不起作用。我发现当 DOM 元素被销毁并再次创建时会发生此异常。这里我的场景是我有一个包含记录的表,并且下面有一个文本,如下所示,“显示 6 行中的 1 到 6 行”。当我点击刷新按钮时,出现此异常。
String recordsBeforeRefresh = getRecordsCountFromTable(waitForElement(By.xpath(properties.getProperty("RefreshPage.Icon"))).getText());
clickElement(By.xpath(properties.getProperty("RefreshPage.Button")), "Refresh");
String recordsAfterRefresh = getRecordsCountFromTable(waitForElement(By.xpath(properties.getProperty("RefreshPage.Icon"))).getText());
if(recordsBeforeRefresh.equals(recordsAfterRefresh))
{
return true;
}
else
{
return false;
}
waitforElement 在另一个这样的类中
protected WebElement waitForElement(final By fieldLocator) {
return waitForElement(fieldLocator, 30);
}
protected WebElement waitForElement(final By fieldLocator, int timeoutSeconds) {
Wait<WebDriver> wait = new FluentWait<WebDriver>(getDriver()).withTimeout(timeoutSeconds, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS).ignoring(NoSuchElementException.class);
WebElement field = null;
try {
field = wait.until(new Function<WebDriver, WebElement>() {
@Override
public WebElement apply(WebDriver driver) {
return driver.findElement(fieldLocator);
}
});
} catch (Throwable t) {
throw new AutomationError(t);
}
return field;
}
getRecordsCountFromTable(String) 有正则表达式模式匹配方法来获取记录总数。
请帮忙...
堆栈跟踪:
stale element reference: element is not attached to the page document
(Session info: chrome=47.0.2526.106)
(Driver info: chromedriver=2.20.353145 (343b531d31eeb933ec778dbcf7081628a1396067),platform=Windows NT 6.3 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 137 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/stale_element_reference.html
Build info: version: '2.48.2', revision: '41bccdd10cf2c0560f637404c2d96164b67d9d67', time: '2015-10-09 13:08:06'
System info: host: '7YYCXY1', ip: '10.101.121.23', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_25'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, chrome={userDataDir=C:\Users\LSANAP~1\AppData\Local\Temp\scoped_dir6484_22708}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=47.0.2526.106, platform=WIN8_1, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: dd9a7e9b7d9d0f51a61f8075ed7bd843
错误出现在 String afterrefresh 行...
最佳答案
@Lokesh S,您可以尝试以下步骤,最有可能使其发挥作用:
第 1 步:单击“刷新”或执行操作
第 2 步:使用元素上的显式等待来等待元素显示
步骤 3:再次执行 findElement,抛出 StaleElementException。
关于java - Selenium : stale element reference: element is not attached to the page document,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34494292/
已修复:这是一个 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应用程序,它首先在启动时创建一个连接池,然后在每次刷新期间,从池中获取连接,使用它,然后关闭它。当我与网络和用户断开连接时,就会出现问题按刷新按钮。应用程序似乎进入挂起状态(从我的
我是一名优秀的程序员,十分优秀!