在Selenium中使用JavascriptExecutor时,Click方法不起作用

在Selenium中使用JavascriptExecutor时,Click方法不起作用,selenium,Selenium,我正在单击第一页上显示的文本框 WebElement txtBox = driver.findElement(By.xpath("---xpath---")); txtBox.click(); 然后在执行了一些块之后,我在同一窗口的新页面中得到了相同的文本框。 这里我还想点击文本框。 我使用JavascriptExecutor来编写脚本 ((JavascriptExecutor)driver).executeScript("arguments[0].click();", txtBo

我正在单击第一页上显示的文本框

WebElement txtBox = driver.findElement(By.xpath("---xpath---"));
      txtBox.click();
然后在执行了一些块之后,我在同一窗口的新页面中得到了相同的文本框。 这里我还想点击文本框。 我使用JavascriptExecutor来编写脚本

((JavascriptExecutor)driver).executeScript("arguments[0].click();", txtBox );
但是在运行脚本时,我收到一条错误消息,上面说:

org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document
每次重新加载页面时都需要执行driver.findElement

此方法返回作为当前页面组成部分的WebElement。若您刷新浏览器或导航到其他URL,或者即使元素被同一页面上的某些javascript删除并再次附加,以前找到的元素也无法再使用

这里有关于此异常的官方解释:

旧元素异常发生在您想要与先前加载的元素交互之后。如果您获取webelement,然后重新加载页面,则会出现此异常,因为它不在新创建的页面中。单击web元素时最好不要将其指定给变量,如:

driver.findElement(By.xpath("---xpath---")).click();