动作类obje

时间:2018-05-31 11:49:10

标签: java selenium selenium-webdriver action

这是给予

  

陈旧元素引用:元素未附加到页面文档

我不能多次调用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 个答案:

答案 0 :(得分:0)

当您移动到不同的页面或甚至刷新当前页面时,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();