這個web自動化測試框架真香!
在web自動化測試當中, selenium架構應該是很難繞過的,很多宣稱要超 selenium的下一代web自動化測試框架最終都敗下陣來。
不過,selenium的api確實比較復雜,所以也有很多庫嘗試對他進行上層封裝,splinter是其中發展得最好的一個。
這篇文章,我們介紹splinter的簡單入門,如果你覺得selenium已經足夠好用,也可以參考splinter的設計,對selenium 二次封裝。
一、快速使用
瀏覽器會自動開啟:
二、安裝
▲ pip install splinter
▲ 安裝瀏覽器驅動,驅動和瀏覽器型號版本要對應。
驅動下載步驟:
▲ 打開下載地址:
https://npm.taobao.org/mirrors/chromedriver
▲ 選擇驅動版本。比如使用的是chrome瀏覽器v78, 則對應可以下載78版本的驅動
▲ 解壓chromedriver.exe文件,放到環境變量中(比如Python根目錄下)。
三、瀏覽器選項
四、元素查找
元素查找的方式基本上沿用了selenium:
▲ id
▲ name
▲ css 選擇器
▲ xpath
但是也新增了一些用得比較多的方式:
▲ text 文本
▲ href 屬性
▲ value 屬性
查找方式有很多,但是其實作用不大,反而造成了框架代碼的紊亂,不如就直接保留xpath和css就夠了。
其實元素查找有更精簡的__call__方式來實現,有時間再說,這里就不深入了。
五、等待
相比于selenium的等待,splinter的友好性要好很多。
你可以在初始化瀏覽器的時候就設置一個全局等待時間,接下來所有的元素查找都會根據這個超時時間進行元素查找:
判斷和匹配:
用過selenium的可能會對顯示等待的使用方式很苦惱,實在是難用,splinter的 matcher機制類似于顯示等待,當然,更好用一些:
雖然更加容易使用,但是這種方式還是和元素查找存在同樣的問題:api 太龐雜,一看源碼直接暈了。
小伙伴們,你們能想到精簡辦法嗎?
六、input元素輸入
七、窗口管理和切換
窗口管理和切換是 splinter 最值得使用的地方,因為 selenium 管理窗口的方式非常原始,不自己封裝幾乎無法正常使用。
splinter用一個專門的Window類來管理窗口:
splinter對于窗口管理的實現非常有意思,對 python 魔術方法和描述符了解的同學可以去看下源碼。
iframe切換用到了上下文管理器,你只需要這樣就可以完成iframe切換,并且每次執行完會自動退出。
八、總結
▲ splinter相比selenium更加容易使用,但是由于只是在selenium的外面套一層殼,整個架構和流程并沒有發生變化;
▲ splinter的api管理比較龐雜,對于一些很少用到的方法, 不管就行了;
▲ splinter對于瀏覽器的一些復雜操作做了很好的封裝:
windows 管理
iframe 切換
select 選擇器處理
鼠標操作
尤其是表單和 input 的輸入更加精簡
▲ 缺乏對文件上傳的處理
▲ 元素查找和管理還有待優化
本文由檸檬班雨澤老師原創,轉載需注明出處!