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

报错原因:

由于页面刷新后,需要重新定位元素

解决方案:try-catch

报错前的代码:

WebElement element=driver.findElement(By.xpath("//input[@id='name']"));
            element.sendKeys("输入的文本");

解决后的代码:

try {
            WebElement element=driver.findElement(By.xpath("//input[@id='name']"));
            element.sendKeys("输入的文本");
        }
        catch(org.openqa.selenium.StaleElementReferenceException ex)
        {
            WebElement element=driver.findElement(By.xpath("//input[@id='name']"));
            element.sendKeys("输入的文本");
        }
注意:catch()内和常见的区别,这里的是:org.openqa.selenium.StaleElementReferenceException ex

总结:

1.try-catch相当于在页面刷新后再次获取一次元素,即在try中判断找不到元素时,执行catch中代码再次加载一次元素
2.注意catch括号中的代码,和平常的catch不太一样

你可能感兴趣的:(selenium入门,selenium常见错误总结,selenium)