1. 程式人生 > 其它 >RobotFramework篇-利用seleniumLibrary 實現web自動化

RobotFramework篇-利用seleniumLibrary 實現web自動化

在robotframework當中,要實現web自動化,則需要使用SeleniumLibrary這個庫。

目前版本中,有180+關鍵字。隨著版本的更新,關鍵字的個數和名字也會有所變動。

在網上沒有找到較為全面的關於這個庫的關鍵字介紹,所以此篇文章作為一個彙總,列舉常用的關鍵字。

1、SeleniumLibrary的安裝:

前提:已安裝好python環境並配置好環境變數。然後在命令行當中,執行以下命令:

pip install --upgrade robotframework-seleniumlibrary

2、SeleniumLibrary結構、和Selenium的關係

SeleniumLibrary是一個python第三方庫(存放在python安裝目錄下的Lib/site-packages/SeleniumLibrary)。它的結構如下,其中keywords目錄下存放的是關鍵字。

在原始碼中,是分門別類的來存放關鍵字。包括alert彈框、表格/select/iframe等元素操作、等待、視窗等。

SeleniumLibrary的原始碼中,很多地方都直接使用了selenium的API來封裝網頁的操作,可以說是在selenium之上,封裝了更多的元素操作關鍵字,提供給robot框架的使用者。畢竟有現成的“輪子”,就沒有必要再重新造了。

比如上圖中elment.py當中的滑鼠操作。在selenium當中,ActionChains類是用來專門實現滑鼠操作的。

以元素雙擊操作為例,如果使用python+selenium庫來實現雙擊操作,需要以下程式碼:

在SeleniumLibrary當中,關鍵字double click element

就將元素和滑鼠雙擊操作封裝在一起。只要傳入元素定位即可(如下圖所示)。

3、SeleniumLibrary關鍵字分類解讀

1) 引入SeleniunLibrary庫時,初始化引數

SeleniumLibrary在robotframework當中,引入時會將SeleniumLibrary這個類初始化。

初始化的引數是對所有關鍵字生效的。

Timeout:等待超時時間。關鍵字當中有timeout引數的,都使用此處的預設值,5秒。

Implicit wait:隱性等待時長。0.0表示沒有隱性等待。

run on failure:關鍵字執行失敗時的動作。Capture Page Screenshot是擷取頁面圖片的關鍵字。表示執行失敗時,自動擷取當前網頁圖片, 即失敗時自動截圖功能。

Screenshot root directory:擷取的網頁圖片存放路徑 。None表示不指定路徑 ,預設與輸出檔案同目錄。

我們在robot當中引入SeleniumLibrary時,可以修改預設引數值。比如修改預設timeout為15s

2)元素定位語法:

在web自動化當中,有8大定位方式。無論用什麼樣的語言/框架,定位方式都是通用的。

在robot框架當中,定位語法有以下2種表達方式:

1) 定位策略:定位表示式(比如 id:kw)

2) 定位策略=定位表示式(比如 id=kw)

在robot當中,除了8大定位方式以外,還額外擴充套件了幾種,整體的定位方式如下(摘抄自官方文件):

定位策略匹配方式定位示例
id 元素的id屬性 id:example
name 元素的name屬性 name:example
identifier 元素的id或者name屬性 identifier:example
class 元素的class屬性 class:example
tag 元素的標籤名稱 tag:div
xpath xpath定位表示式 xpath://div[@id="example"]
css css selector定位表示式 css:div#example
dom DOM表示式 dom:document.images[5]
link 精確匹配連結元素的文字內容 link:The example
partial link 部分匹配連結元素的文字內容 partial link:he ex
jquery jQuery表示式 jquery:div.example

示例:

Click Elementid:foo#點選id為foo的元素。
Click Element css:div#foo h1 #點選 id為foo的div元素後代當中的h1元素
Click Element xpath=//div[@id="foo"]//h1 #同上一個。
Click Element //*[contains(text(), "example")] #點選 文字內容包含example的元素

注意:xpath定位表示式可省略字首:xpath。

3)瀏覽器和視窗操作關鍵字

關鍵字名稱關鍵字說明
open browser 開啟瀏覽器並訪問系統地址。url:網站地址,browser:瀏覽器型別。
close browser 關閉瀏覽器。
maximize browser window 當前視窗最大化。
get window size 獲取當前視窗的大小
set window size 設定視窗大小。
get window handles 獲取瀏覽器中,所有視窗的控制代碼。
switch window 切換視窗。可根據視窗的控制代碼、標題、名稱等切換。
get window names 獲取瀏覽器,所有視窗的名稱。
get window titles 獲取所有視窗的標題。
get locations 獲取所有視窗的url。

4)元素通用操作關鍵字(包含滑鼠/鍵盤操作):

關鍵字名稱關鍵字說明
click ement 點選元素。
input text 在元素中輸入文字值。
get element attribute 獲取元素的某一個屬性值。
get element size 獲取元素的大小。
get value 獲取元素的value屬性值。
get text 獲取元素的文字內容
clear element text 清除元素的文字值。
get webelement 獲取一個元素物件。WebElment物件。
get webelements 獲取匹配的所有元素物件。WebElment物件。
set focus to element 元素獲取焦點。
double click element 雙擊元素
scroll element into view 滾動元素到可見區域
drag and drop 將一個元素拖拽到另一個元素區域中。
mouse over 滑鼠懸浮在元素上
press keys 鍵盤按鍵操作。

5)select/frame/alert/表格等操作關鍵字:

關鍵字名稱關鍵字說明
get list items select/option元素中,獲取所有的options選項。
select from list by index select/option元素中,根據下標來選擇option選項
select from list by value select/option元素中,根據value屬性來選擇option選項
select from list by label select/option元素中,根據文字內容來選擇option選項
select frame 切換到指定的iframe當中。
unselect frame 退出iframe,切換到預設的html頁面中。
handle alert 關閉alert彈出框。
input text into alert 輸入文字到alert彈框中,並關閉alert彈出框。
choose file 在上傳檔案的輸入框中(input元素的type為file)輸入文字地址。
get table cell 獲取表格的單元格值。行號和列號起始值為1.包含表頭和表尾所對應的行。

6)元素等待關鍵字

(關鍵字中包含wait的, timeout引數預設為seleniumlibrary初始化值,預設為5秒):

關鍵字名稱關鍵字說明
wait for condition 等待條件成立:條件為js表示式,表示式的結果要為布林值。
wait until element is visible 等待指定的元素可見
wait until element is not visible 等待指定的元素不可見
wait until element is enabled 等待指定的元素可用
wait until element contains 等待指定的元素 包含 指定的文字內容
wait until element does not contain 等待指定的元素 不包含 指定的文字內容
wait until page contains element 等待頁面 包含指定的元素
wait until page contains element 等待頁面 不包含指定的元素
wait until page contains 等待頁面 包含指定的文字內容
wait until page does not contain 等待頁面 不包含指定的文字內容

7)斷言關鍵字(關鍵字中包含should的均是):

關鍵字名稱關鍵字說明
page should contain element 頁面應當 包含指定的元素
page should not contain element 頁面應當 不包含指定的元素
locator should match x times 元素定位表示式應該匹配 指定 次數
element should be visible 指定的元素 應當可見
element should not be visible 指定的元素 應當不可見
element should be enabled 指定的元素 應當可用
element should be disabled 指定的元素 應當不可用
element text should be 指定元素的文字內容 應當是 指定內容
element text should not be 指定元素的文字內容 應當不是 指定內容
element should be focused 指定的元素 應當為焦點狀態

還有很多其它斷言的關鍵字,不一一列舉。

8)截圖類關鍵字:

關鍵字名稱關鍵字說明
capture page screenshot 擷取當前頁面圖片。
capture element screenshot 擷取指定元素的圖片。
set screenshot directory 設定截圖儲存目錄。

4、robot - web自動化使用示例

轉載自:https://www.cnblogs.com/Simple-Small