Selenium常見報錯問題(2)- 解決和分析StaleElementReferenceException異常


如果你在跑selenium腳本時,需要某些異常不知道怎么解決時,可以看看這一系列的文章,看看有沒有你需要的答案

https://www.cnblogs.com/poloyy/category/1749830.html

 

直譯異常

Stale Element Reference Exception:陳舊元素引用異常

 

首先,啥情況下會出現這異常

簡單來說就是,頁面元素過期了,無法引用元素

 

出現這異常的常見原因

  • The element has been deleted entirely:該元素已被刪除【更常見】
  • The element is no longer attached to the DOM:元素不再附加到DOM上

 

該元素已被刪除

分析原因

造成這種情況的最常見原因:刷新了元素所在的頁面,或者用戶導航到另一個頁面

另一個原因是:JS庫刪除了一個元素,並用相同的ID或屬性替換了它

 

解決方法

再次查找該元素

 

元素不再附加到DOM上

分析原因

有可能是引導了不再附加到DOM樹的元素(比如,document.documentElement)

 

解決方法

仍然是再次查找該元素

 

博主遇到的情況

selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document【第二種情況】

 

什么情況下遇到這問題?

對元素hover,即調用了 Webdriver.ActionChains(driver).move_to_element(element).perform() 的方法

 

如何解決這問題?

對異常進行捕獲,並重新定位元素,重新hover

 

如果這樣也解決不了你的問題,那么可以試試直接click元素(當然,前提是點擊該元素不會觸發其他任何交互,才能用click替換hover)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM