我有这段HTML代码:
onclick="SetAdquirente('ADIQ')
然后,我试图通过点击 elem = driver.find_element_by_id('tabs-2')
action.move_to_element(elem)
action.click()
action.perform()
(我在同一网站上的许多其他步骤中获得成功)来自动化我的测试,但它产生了以下错误:
引发exception_class(消息,屏幕,堆栈跟踪)
selenium.common.exceptions.StaleElementReferenceException:消息: 陈旧元素引用:元素未附加到页面文档 (会议信息:chrome = 59.0.3071.115)(驱动信息: chromedriver = 2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform = Windows NT 6.1.7601 SP1 x86_64)
我找到它的代码是:
{{1}}
为什么会这样? (我已尝试使用其他find_element语句,例如xpath,链接文本等,并且结果相同)
非常感谢!
答案 0 :(得分:0)
当在dom上更改了有问题的webelement并且对该webelement的初始引用丢失时,就会发生StaleElementException。
您可以再次搜索webelement
试试这个
try:
elem = driver.find_element_by_id('tabs-2')
action.move_to_element(elem)
action.click()
action.perform()
except StaleElementReferenceException:
elem = driver.find_element_by_id('tabs-2')
action.move_to_element(elem)
action.click()
action.perform()