1. 程式人生 > 其它 >感覺Selenium不好學?那你可能需要的是Helium

感覺Selenium不好學?那你可能需要的是Helium

做Web自動化的小夥伴們都知道Selenium,可以全面模擬各種網頁上的鍵盤、滑鼠、事件。

Selenium雖好,但是定位並不容易,不論CSSselector,還是XPATH,學習曲線也還是有的。

有沒有更簡單的Web自動化測試工具?

有!老司機今天給大家介紹一個比Selenium更簡單的自動化測試工具——Helium

Helium是Python的一個類庫,需要事先用pip方式安裝。

pipinstall 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添磚加瓦!