将python与selenium一起使用,以下代码会产生陈旧的元素错误,任何人都可以看到原因吗?
def test_set_language(self):
driver = self.driver
driver.get("http://somewebpage.com")
elemL = driver.find_element_by_name("selectLang")
elemL.send_keys(Keys.DOWN)
driver.implicitly_wait(10)
self.assertIn("Mot", driver.page_source)
答案 0 :(得分:0)
StaleElementReferenceException
模型已更改,则会引发 DOM
。
元素查找是selenium为该元素分配内部id的第一次 - 有关详细信息,请参阅selenium执行日志。
如果您无法提供更好的解决方案,您可能需要使用StaleElementReferenceException
的通用解决方案 - 使用try/catch
块进行环绕,在catch
块中等待几秒钟然后重试操作。这不是一个优雅的解决方案,但这是人们有时必须做的事情以及什么工作正常。