你該瞭解的自動化測試工具:Selenium控制瀏覽器的常用方法!

博為峰網校發表於2018-12-04

Selenium怎麼來的?

Selenium這個詞,是化學元素硒(Se)的意思。在軟體測試領域,它是絕對的自動化測試開源專案的標杆。取這個名字也是有講究的,在當時乃至如今的軟體測試領域,QTP(UFT)佔有率非常高。Quick Test Professional是Mercury公司開發的,自然就是汞(Hg)。在生物學,研究發現硒對汞有拮抗作用,也就是硒克汞。Selenium取名的用意不言而喻。

你該瞭解的自動化測試工具:Selenium控制瀏覽器的常用方法!

Selenium控制瀏覽器的操作

Selenium是一個用於Web應用程式測試的工具。Selenium測試直接執行在瀏覽器中,就像真正的使用者在操作一樣。支援的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

這個工具的主要功能包括:測試與瀏覽器的相容性——測試你的應用程式看是否能夠很好得工作在不同瀏覽器和作業系統之上。測試系統功能——建立迴歸測試檢驗軟體功能和使用者需求。支援自動錄製動作和自動生成 .Net、Java、Perl等不同語言的測試指令碼。

有時候我們希望能讓瀏覽器以某種尺寸開啟,讓訪問頁面在這種尺寸下執行,或者控制瀏覽器進行後退與前進操作等等。

今天主要介紹一下瀏覽器控制的一些常用屬性和方法,他們大多集中在selenium.webdriver.remote.webdriver類中。不管是用哪種瀏覽器,他們都繼承自remote.webdriver類,用的方法屬性都是相同的。

下面舉個幾個控制瀏覽器的例子。

一、控制瀏覽器視窗大小

有時候我們希望能以某種瀏覽器尺寸開啟,讓訪問的頁面在這種尺寸下執行。例如可以將瀏覽器設定成移動端大小(480* 800),然後訪問移動站點,對其樣式進行評估;WebDriver提供了set_window_size()方法來設定瀏覽器的大小。

你該瞭解的自動化測試工具:Selenium控制瀏覽器的常用方法!

二、設定休眠時間

由於開啟百度網址後,頁面載入需要幾秒鐘,所以最好等到頁面載入完成後再繼續下一步操作。

你該瞭解的自動化測試工具:Selenium控制瀏覽器的常用方法!

三、控制瀏覽器前進後退

在使用瀏覽器瀏覽網頁時,瀏覽器提供了後退和前進按鈕,可以方便地在瀏覽過的網頁之間切換,WebDriver也提供了對應的back()和forward()方法來模擬後退和前進按鈕。下面透過例子來演示這兩個方法的使用。

你該瞭解的自動化測試工具:Selenium控制瀏覽器的常用方法!

四、頁面重新整理

有時候頁面操作後,資料可能沒及時同步,需要重新重新整理。

你該瞭解的自動化測試工具:Selenium控制瀏覽器的常用方法!

五、頁面截圖

自動化用例是由程式去執行的,因此有些時候列印的錯誤資訊並不十分明確。如果在指令碼執行出錯的時候能夠對當前視窗截圖儲存,那麼透過圖片就可以非常直觀的看出出錯的原因。WebDriver提供了截圖函式get_screenshot_as_file()來擷取當前視窗:

你該瞭解的自動化測試工具:Selenium控制瀏覽器的常用方法!

值得注意的是,當使用視窗截圖功能時,圖片的副檔名必須是png!!

六、關閉退出瀏覽器

退出有兩種方式,一種是close;另外一種是quit。

close用於關閉當前視窗,當開啟的視窗較多時,就可以用close關閉部分視窗;

quit用於結束程式,關閉所有的視窗。

你該瞭解的自動化測試工具:Selenium控制瀏覽器的常用方法!

總結:

先列舉幾個常見的屬性:

current_url: 返回當前瀏覽器的url

title: 返回當前頁面title

current_window_handler:返回當前視窗的控制程式碼,這在多視窗切換的時候會用到

window_handlers: 返回當前瀏覽器的所有視窗的控制程式碼。

以下是常見的控制瀏覽器的方法:

get(url): 載入指定的網頁

back()/forward(): 對應於瀏覽器的向前向後按鈕

implicitly_wait(time): 隱式等待,在元素被找到前的等待時間,time的單位是秒。它的作用域是全域性的,一個session只用設定一次,任意元素如果在指定時間內沒有被找到則拋錯。會用單獨一篇來介紹元素等待的話題,在這裡就不詳細解釋了

close(): 關閉當前的視窗

quit(): 關閉整個瀏覽器,所有的視窗都會關閉

refresh(): 重新整理網頁

get_screenshot_as_file(filename): 儲存瀏覽器的截圖到一個png檔案, 這裡要注意filename需要是一個完整的路徑,例如/Users/jack/Downloads/screenshot.png.

set_window_position(x,y,windowHandle='current'): x,y的單位是畫素,設定瀏覽器的位置。get_window_position()則可以獲得瀏覽器當前的位置

set_window_size(width,height, windowHandle='current'): width, height的單位是畫素,設定瀏覽器的長寬。get_window_size()可以獲得瀏覽器的尺寸

maximize_window(): 最大化視窗

歡迎加入  51軟體測試大家庭,在這裡你將獲得【最新行業資訊】,【免費測試工具安裝包】,【軟體測試技術乾貨】,【面試求職技巧】... 51與你共同學習,一起成長!期待你的加入: QQ                     群:                    755431660


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2284117/,如需轉載,請註明出處,否則將追究法律責任。

相關文章