前面也學了很多的selenium元素定位了,相信肯定也是遇到了很多的問題,此處列舉出一些,來看看是否有你遇到過的還未解決的吧,
selenium.common.exceptions.WebDriverException(msg=None, screen=None, stacktrace=None)
描述:WebDriver基礎的例外類
解決思路:檢查驅動版本與瀏覽器版本
selenium.common.exceptions.TimeoutException(msg=None, screen=None, stacktrace=None)
描述:在足夠的時間內沒有完成某項操作
解決思路:適當的增加時長,等待界面元素的渲染
selenium.common.exceptions.NoSuchElementException(msg=None, screen=None, stacktrace=None)
描述:定位元素不被找到
解決思路:檢查是否寫錯了元素,更換定位元素
selenium.common.exceptions.NoSuchAttributeException(msg=None, screen=None, stacktrace=None)
描述:元素屬性不能被找到
解決思路:檢查是否寫錯了元素屬性
selenium.common.exceptions.NoAlertPresentException(msg=None, screen=None, stacktrace=None)
描述:切換到alert彈窗,alert并沒有彈出
解決思路:增加等待時間
selenium.common.exceptions.NoSuchFrameException(msg=None, screen=None, stacktrace=None)
描述:沒有iframe視窗
解決思路:檢查是否存在此類視窗
selenium.common.exceptions.InvalidElementStateException(msg=None, screen=None, stacktrace=None)
描述:元素無效
解決思路:更改定位元素
selenium.common.exceptions.ElementNotSelectableException(msg=None, screen=None, stacktrace=None)
描述:元素不能被選中
解決思路:檢查是否是元素是否寫錯,檢查屬性
selenium.common.exceptions.ElementNotVisibleException(msg=None, screen=None, stacktrace=None)
描述:元素不可見,不能操作
解決思路:檢查元素是否帶有display:none屬性
selenium.common.exceptions.InvalidSwitchToTargetException(msg=None, screen=None, stacktrace=None)
描述:切換視窗或框架不存在
解決思路:檢查頁面元素,查看是否存在此類視窗或檢查定位元素
selenium.common.exceptions.NoSuchWindowException(msg=None, screen=None, stacktrace=None)
描述:目標視窗不存在
解決思路:列印視窗資訊,核對切換的視窗是否存在
引發上述問題的根源,在這博主說一下:
1、元素不存在,無法定位到,遇到這類問題,很大的可能性就是你定位的元素,你自己寫錯了定位方式或屬性 ,一個界面可能存在多個相同的元素屬性,所以,定位前別著急,在元素界面搜索一下看看是否有存在同名,
2、元素存在,但定位運算式有問題,沒有定位到該元素,這類問題應該還是很常見的,特別是小白學習的階段,所以要細心了,
3、頁面加載過久,元素還沒加載出來,所以定位失敗,這類問題,你需要設定好等待時間,元素界面的渲染完成還是很重要的,對于這類問題,可以看看這篇文章:開學了軟測的同學快來--selenium,必須要知道的操作-等待時間及視窗操作-詳解+專案實戰_清歡無別事-CSDN博客
這篇文章也是博主自己寫的,可得好好看了,除了上述的問題之外,其實還有很多的元素定位問題,可以集大家的留言,后續博主再添加上來,
另外,解決思路不唯一,所以這不是唯一的方案,如有更好的解決方法,歡迎私信,留言,或添加博主微信qing_an_an,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/302794.html
標籤:python
