2014-04-22 110 views
0

即使元素存在且可点击,我得到“元素不再附加到dom”异常,我试图单击ryanair网站上的“下一步”箭头,下一个按钮的HTML是:python元素不再附加到dom硒

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

都正常工作,如果我之间没有动作,但一旦我告诉硒点击页面上的其他元素(我不动到其他页面,我留在同一页上并显示一些动态内容)“下一个”链接只在第一时间有效,然后给我例外,帮助将非常感谢! :)

回答

0

你仍然在同一页上,但由于DOM的元素已经改变了一些AJAX行动&调用,所以你不得不使用重新检测你的对象:

elem = browser.find_element_by_link_text('>') 

如果您不这样做,这是更可能的是,你会得到一个

StaleReferenceException 

更多info