当前位置: 首页 > 知识库问答 >
问题:

陈旧元素异常:单击页面中的报告链接,然后单击“上一步”按钮,依此类推

农建弼
2023-03-14

如图所示:我想一个接一个地点击每个链接,点击:窗口不会得到更改,但会刷新。

在报告链接中单击可导航到下一页,单击返回链接可导航回同一页。

一旦回到同一页面,定位器就不再识别下一个报告链接

public void getreports(String reportname) throws Exception
List<WebElement> li=driver.findElements(By.xpath(".//tbody/tr/th/following::
tr/td//div/a"));

for(WebElement e: li)   {

if(reportname.equalsIgnoreCase(e.getText())) {
utilities.wait_control(e);
e.click();
break;
}
else if(reportname.equalsIgnoreCase("all"))
{

utilities.wait_control(e);
e.click();

NetReports ld = PageFactory.initElements(driver, NetReports .class);
ld.Netsubcategoryreport_backbutton.click();
Thread.sleep(2000); 
} }

共有2个答案

李康安
2023-03-14

>

  • StaleElementCourceExceli-

    顾名思义,当元素过时时会发生此异常,这意味着您试图对其采取操作的元素引用在页面上不再可用或已更改。

    为了避免这种异常,请在需要对元素执行操作时尝试查找该元素,而不是在代码的某个点获取元素,然后在不同的位置重用它。

  • 魏晨
    2023-03-14

    我想你只需要稍微调整一下你的循环

    String selector = ".//tbody/tr/th/following::tr/td//div/a";
    List<WebElement> li=driver.findElements(By.xpath(selector));
    for (int i = 0; i < li.length; i++) {
        li=driver.findElements(By.xpath(selector));
        WebElement e = li.get(i);
        //Rest of your logic goes here
    }
    
     类似资料:
    • 我试图点击以下按钮使用xpath在selenium, 我试过下面的代码, 我得到以下错误, 组织。openqa。硒。StaleElementReferenceException:stale元素引用:元素未附加到页面文档 我想我之所以面临这个问题,是因为它是作为一个div而不是按钮封闭的。

    • 问题内容: 我正在尝试使用Cucumber / Capybara / Selenium堆栈测试就地编辑器,但是我的问题是该编辑器是通过单击div而不是链接或按钮来激活的。我似乎无法弄清楚如何让水豚去做这件事。有办法吗? 问题答案: 您可以通过单击元素。我在div中添加以下内容。 还有一些功能似乎可以使鼠标悬停,尽管它不能与Selenium一起使用。 您很有可能需要使用Capybara提供的标签来装

    • 我正试图让JQuery在按下下一个按钮时自动单击该按钮。在互联网上,我发现应该是这样的(查看JQuery部分)。但由于某种原因,它不起作用。 它们必须在同一个代码中吗? 我尝试过的:JQuery: 表单中的按钮1 HTML: 表单中的按钮2 HTML:

    • 我正在创建一个应用程序,它会在打开任何其他应用程序之前询问密码。为了开始我的活动,我创建了一个intent.SETFLAGS(intent.FLAG_ACTIVITY_NEW_TASK)的标志; 锁定/解锁功能正常工作,但当我按下后退按钮时,它没有重定向到主屏幕。

    • 问题内容: 我有一个Java 7程序(使用WebStart技术,仅适用于Windows 7/8计算机)。 我需要添加一个函数,以便我的程序单击具有已知URL(https)的页面上的按钮。 有人建议使用WebKit SWT,但我去了他们的网站,他们说该项目已终止。(http://www.genuitec.com/about/labs.html) 其他人说,JxBrowser是唯一的选择,但是看起来它

    • 按钮点击页面后刷新并重定向到另一个页面。在我的情况下,点击按钮后,我给页面刷新超时,但点击按钮后,它显示超时异常,没有时间等待。 例外: 失败:createEventTest组织。openqa。硒。TimeoutException:等待页面加载时超时。命令持续时间或超时:15.08秒构建信息:版本:“2.53.0”,修订版:“35ae25b1534ae328c771e0856c93e187490c