做Web自動化的小伙伴們都知道Selenium,可以全面模擬各種網頁上的鍵盤、滑鼠、事件,
Selenium雖好,但是定位并不容易,不論CSSselector,還是XPATH,學習曲線也還是有的,
有沒有更簡單的Web自動化測驗工具?
有!老司機今天給大家介紹一個比Selenium更簡單的自動化測驗工具——Helium
Helium是Python的一個類別庫,需要事先用pip方式安裝,
pip install helium
確保Chrome或者FireFox瀏覽器已經安裝,不需要配合Firefox和Chrome瀏覽器的驅動Geckodriver不需要ChromeDriver,
從安裝上,Helium就開始走簡約路線了,
下面舉幾個具體例子,小伙伴們一起看看Helium的讓人瞠目結舌的簡潔,
1一個打開百度首頁,執行搜索
Helium的代碼如下

定位都省掉了,太簡潔了!Helium不香嗎?
如果啟動火狐瀏覽器,那么只需要使用 start_firefox()就可以了,
2等待DOM元素出現
Helium的代碼只需要一行:

讓我們對比一下Selenium的寫法:

是不是Helium快多了?
3點擊網頁上的鏈接
在網頁上定位到某個鏈接,再點擊,這是Web自動化測驗的基本步驟,用Helium實作起來,又雙叒叕是短短一句話搞定

小伙伴,你沒看錯,
“找到‘新聞’鏈接,再點擊該鏈接”
就是click(Link(“新聞”)) 這么短短一句…
老司機試驗到這里,已經覺得Helium讓自動化測驗真的降了不止一個難度,
但是這就夠了嗎?還有更驚悚的操作!

還是百度首頁上,點擊“新聞”右側的那個鏈接,
小伙伴們可以自行腦補一下Selenium怎么定位的,
Helium的操作,讓老司機驚掉下巴——又是短短一句話搞定:

只加了“to_right_of=”,搞定!簡單到難以置信!
4高級功能:無界面瀏覽器
某些特殊情況下,小伙伴們在執行自動化測驗時候,不需要真的出現一個瀏覽器視窗,我們通常把這種叫做“無頁面瀏覽器”操作,典型的代表是PhantomJS,
不需要任何外援,只需要一個引數“headless=True”,Helium自己就可以做到:
start_chrome(‘www.baidu.com’, headless=True)
看了上面這么多例子,小伙伴們想問:究竟Helium是何方神圣?
其實Helium是Selenium Python的高階封裝,屏蔽了很多細節,官方表示:完成同樣功能,Helium比Selenium少30% ~ 50% 代碼量,
Helium是一個開源框架,還在繼續開發中,目前只支持Firefox和Chrome兩種瀏覽器,
此外,helium還有更多優點:
Web Driver管理:helium自帶ChromeDriver和Geckodriver的副本,所以用戶不需要下載瀏覽器驅動并配置路徑上,相對于Selenium3,不要太友好!
iFrame處理:與Selenium不同的是,Helium可以自由互動不同iFrame中的元素,而不用“switch to”來切換,
視窗管理:Helium會注意彈出視窗的打開或關閉,并像用戶一樣聚焦/切換,用戶還可以通過視窗標題的(甚至部分標題)輕松切換到視窗,不再需要迭代Selenium視窗句柄,
Implicit waits:默認情況下,如果Selenium用戶嘗試單擊DOM元素,但該元素尚未出現在頁面上,則腳本將失敗,而Helium會最多等待10秒,只等元素出現,
Explicit waits:Helium提供了一個更好的API來等待web頁面上的條件成為現實,
最后,Helium是個開源專案,專案地址:
http://8rr.co/M3V7
小伙伴們可以自己貢獻代碼,為Helium添磚加瓦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/344198.html
標籤:其他
