2014-04-22 151 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