如果你在跑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)