robotframework框架 - seleniumLibrary 關鍵字解讀-全攻略


在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 Element id: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自動化使用示例

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM