陈旧元素参考错误?

时间:2017-08-02 17:47:08

标签: python python-3.x selenium selenium-webdriver selenium-chromedriver

我有这段HT​​ML代码:

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,链接文本等,并且结果相同)

非常感谢!

1 个答案:

答案 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()