一、安裝selenium2library庫
如果已經安裝了pip,則使用管理員模式打開windows命令行,輸入pip install robotframework-selenium2library,安裝完成后在命令行輸入pip list查看python的安裝列表,列表中出現了robotframework-selenium2library及對應的版本號,說明安裝完成。
二、導入selenium2library庫
添加完成,黑色示添加的庫正常,紅色表示庫不存。如果為紅色,請檢查C:\Python27\Lib\site-packages 目錄下是否有 Selenium2Library 目錄
按F5可調出關鍵字查詢窗口。source選擇Selenium2Lilrary,然后輸入關鍵字,點擊搜索。選擇關鍵字可以查看關鍵字的說明
三、第一個例子
比如打開百度,輸入一個Open Browser關鍵字,如果關鍵字為藍色說明它是一個合法的關鍵字,后面有一個方框是紅色的,表示這個參數不能缺省的。通過說明信息中,我發現它需要一個 url 地址是必填的,當然還需要指定 browser (默認不填為 friefox)
四、元素定位
Web 自動化測試其實就是找到元素(定位元素)並操作元素。
Selenium2Library 提供了非常豐富的定位器:
最常用的其實是id、name、xpath、css。 id 和 name兩種定位方式非常簡單且實用, xpath 和 css兩種定位方式足夠強大,可以滿足幾乎所有定位需求。
1、id和name定位
以百度為例。我們可看到輸入框input元素有id和name屬性,百度一下按鈕有id屬性。
輸入框:id=kw name=wd,在 Robot framework 中就是這樣寫的:
Input text 用於輸入框的關鍵字 ,后面兩個參數,一個是元素的定位,一個是輸入框輸入的值。
百度一下按鈕:id=su,在 Robot framework 中就是這樣寫的:
click button用戶點擊按鈕的關鍵字,后面跟着一個必填參數。
2、xpath定位
XPath 是一種在 XML 文檔中定位元素的語言。因為 HTML 可以看做 XML 的一種實現,所以 selenium用戶可是使用這種強大語言在 web 應用中定位元素。如果一個元素沒有id和name或沒有唯一標識可以使用xpath 通過層級關系找到元素。
(1)xpath絕對路徑
比如百度頁面的搜索輸入框xpath=/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input。絕對路徑的用法往往是在我們迫不得已的時候才用的。大多時候用相對路徑更簡便
(2)xpath的相對路徑
使用元素本身定位:比如百度頁面的搜索輸入框xpath=//*[@id="kw"],可以利用元素自身的屬性。//表示某個層級下,*表示某個標簽名。@id=kw表示這個元素有個 id 等於 kw
當然,一般也可以制定標簽名:xpath=//input[@id="kw"]元素本身,可以利用的屬性就不只局限為於 id 和 name ,如:Xpath = //input[@autocomplete=’off’],但要保證這些元素可以唯一的識別一個元素。
找上級:如果一個元素找不到可以先找到他的上級。比如:xpath = //span[@class='bg s_btn_wr’]/input,如果父級沒有唯一標識,還可以繼續往上找:
xpath = //form[@id=’form1’]/span/input
布爾值寫法:
Xpath = //input[@id=’kw1’ and @name=’wd’]
總結:使用過程中發現xpath定位有時候語法並沒有任何問題也定位不到元素,比如xpath = //span[@class='bg s_btn_wr’]/input。
3、css 定位
CSS(Cascading Style Sheets)是一種語言,它被用來描述 HTML 和 XML 文檔的表現。CSS 使用選擇器來為頁面元素綁定屬性。這些選擇器可以被 selenium 用作另外的定位策略。CSS 可以比較靈活選擇控件的任意屬性,一般情況下定位速度要比 XPath 快。
CSS 選擇器的常見語法:
五、Selenium2Library 常用關鍵字
1、瀏覽器驅動
open browser也可以打開本地的文件,比如:
2、關閉瀏覽器
(1)關閉當前頁面
(2)關閉所有頁面
3、瀏覽器最大化
4、設置瀏覽器窗口寬、高
5、獲取瀏覽器窗口尺寸
6、文本輸入
7、點擊元素
8、等待元素出現
Arguments:[ locator | timeout=None | error=None ],Xpath=//* [@] :表示元素定位,這里定位出現的元素。42 : 表示最長等待時間。Error : 表示錯誤提示,自定義錯誤提示,如:“元素不能正常顯示”
9、獲取 title
Returns title of current page.我們通常會將獲取的 title 傳遞給一個變量,然后與預期結果進行比較。從而判斷當前腳本執行成功
10、獲取元素的text
Arguments:[ locator ],Returns the text value of element identified by `locator`.
11、獲取元素的屬性值
id=kw@name:id=kw 表示定位的元素。@nam 獲取這個元素的 name 屬性值。
12、cookie處理
get cookies 獲得當前瀏覽器的所有 cookie 。
get cookie value 獲得 cookie 值。key_name 表示一對 cookie 中 key 的 name 。
add cookie 添加 cookie。添加一對 cooke (key:value)
delete cookie 刪除 cookie。刪除 key 為 name 的 cookie 信息。
delete all cookies 刪除當前瀏覽器的所有 cookies。
13、驗證should contain
例子:先獲取頁面的title,賦值給${tt};然后去對比是否等於百度一下你就知道了。
14、表單嵌套
15、下拉框選擇
Arguments:[ locator | *values ]。 locator 為定位下拉框;Vlaue 為選擇下拉框里的屬性值。
16、執行 JavaScript
Execute Javascript 關鍵字用於使用 JavaScript 代碼,參數就是JavaScript 代碼