selenium元素定位防踩坑---StaleElementReferenceException解決方法
1、異常原因
執(zhí)行調(diào)試報錯:selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
意思是,引用的元素已過時。原因是頁面刷新了,此時當(dāng)然找不到之前頁面的元素,就算是后退回來的頁面也是不一樣的。

在編寫腳本時一直報這個錯,使用顯示等待都不行,在一頓百度操作后才知道是元素被刷新了

我們發(fā)現(xiàn),僅僅是刷新了一下頁面,兩次的element id是不同的,這就說明這是兩個不同的元素,如果用之前的element,自然會報錯
原因很明顯,你用別人的身份證id去找現(xiàn)在的人,哪怕這兩個人長的很像,他也會告訴你,對不起,你找錯人啦。
2. 解決方案
有時我們無法避免,不確定什么時候元素就會被刷新。頁面刷新后重新獲取元素的思路不變,這時可以使用python的異常處理語句:try…except…,異常出現(xiàn)時重新執(zhí)行,關(guān)鍵代碼如下

如下圖:我在實際工作當(dāng)中編寫腳本時使用異常try捕獲異常后,頁面刷新后重新獲取元素,可以成功找到元素了

浙公網(wǎng)安備 33010602011771號