我在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 尝试单击或检查该元素的可见,如果该元素可见或已单击退出循环。