有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java操作类obje

这是给予

stale element reference: element is not attached to the page document

我不能多次调用actions类的对象吗? 如果我创建了一个新对象,那么它可以正常工作

public void  actionMethods() throws Exception 
{
    Actions act = new Actions(driver);      
    WebElement ele1 = driver.findElement(By.xpath("//*[@id=\"menu-item-37\"]/a"));
    act.moveToElement(ele1).build().perform();
    Thread.sleep(2000);
    driver.findElement(By.xpath("//*[@id=\"menu-item-4868\"]/a")).click();
    Thread.sleep(2000);

    driver.navigate().back();
    driver.navigate().refresh();
    Thread.sleep(2000);

    act.moveToElement(ele1).build().perform();
    Thread.sleep(2000);
    driver.findElement(By.xpath("//*[@id=\"menu-item-4877\"]/a")).click();

    Thread.sleep(3000);
}

共 (1) 个答案

  1. # 1 楼答案

    当你移动到不同的页面,甚至刷新当前页面时,driver“丢失”了它之前定位的所有元素

    ele1在页面导航后过时,在第二个act.moveToElement(ele1)中使用它之前,需要重新定位它

    driver.navigate().back();
    driver.navigate().refresh();
    Thread.sleep(2000);
    
    // find ele1 again
    ele1 = driver.findElement(By.xpath("//*[@id=\"menu-item-37\"]/a"));
    act.moveToElement(ele1).build().perform();