我得到"元素不再附加到dom"异常,即使元素在那里并且可点击,我试图点击" next" ryanair网站上的箭头,下一个按钮的html是:
<li class="newer" ng-class="{'loadingsmall':loading}">
<a ng-disabled="loading" ng-click="loadMore(0, 'SelectInput$LinkButtonNext1', 1)"
title="Next Week" href="">
</a>
</li>
我找到并点击了几种方法:
elem = WebDriverWait(browser, 15).until(EC.element_to_be_clickable((By.XPATH,
"//a[@title='Next Week']")))
elem = browser.find_element_by_xpath("//a[@title='Next Week']")
elem.click()
和
area = browser.find_element_by_xpath("//a[@title='Next Week']")
action = webdriver.ActionChains(browser)
action.move_to_element(area) action.click(area) action.perform()
和
elem = browser.find_element_by_link_text('>')
elem.click()
如果我之间没有任何操作,那么一切正常,但是一旦我告诉selenium点击页面上的其他元素(我不会移动到其他页面,我会留在同一页面并显示一些动态内容)& #34;下一个&#34;链接只在第一次工作,然后给我例外,帮助将非常感谢! :)
答案 0 :(得分:0)
你仍然在同一页面上,但DOM的元素因一些AJAX动作而发生了变化。调用,所以你不得不使用:
重新检测你的对象elem = browser.find_element_by_link_text('>')
如果你不这样做,你很可能会得到一个
StaleReferenceException
了解更多info