self.driver.back() 之后的陈旧元素引用错误?



我在for loop第一次迭代后stale element reference: element is not attached to the page document得到硒异常。我的代码是:

for gc in grpCommune:
self.driver.execute_script("return arguments[0].scrollIntoView(true);", gc)
self.driver.execute_script("window.scrollTo(0, 0);")
e=gc.find_element_by_xpath('//a[2]')
e.click()
sleep(1)
...
genertaeCSV()
self.driver.back()

我该如何解决?

当绑定到元素的硒引用不再有效时,会发生过时元素异常,通常,当您离开页面或刷新页面或重新加载页面上的内容时,会发生这种情况。在您的情况下,您正在尝试引用在单击e元素之前使用引用捕获的gc元素。当您使用e.click()按钮单击e元素时,grpCommune中的所有引用都不再有效。因此,您将只能使用代码成功运行第一次迭代。

如何修复此代码:获取 for 循环中的gc元素。而不是每次使用 for 循环与索引。

当页面上的元素但 selenium 驱动程序实例无法与该元素交互时,会发生过时元素异常。

以下操作可以解决过时元素异常

1.使用">navigate(("刷新页面 selenium 中的 refresh((" 方法

2.使用 loop 尝试单击或检查该元素的可见,如果该元素可见或已单击退出循环。

最新更新