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

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

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

在網上沒有找到較爲全面的關於這個庫的關鍵字介紹,因此此篇文章做爲一個彙總,列舉經常使用的關鍵字。python

 

一、SeleniumLibrary的安裝:

前提:已安裝好python環境並配置好環境變量。而後在命令行當中,運行如下命令:jquery

pip install --upgrade robotframework-seleniumlibrary

 

 

 

 

二、SeleniumLibrary結構、和Selenium的關係

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

在源碼中,是分門別類的來存放關鍵字。包括alert彈框、表格/select/iframe等元素操做、等待、窗口等。瀏覽器

 

 

 

SeleniumLibrary的源代碼中,不少地方都直接使用了selenium的API來封裝網頁的操做,能夠說是在selenium之上,封裝了更多的元素操做關鍵字,提供給robot框架的使用者。畢竟有現成的「輪子」,就沒有必要再從新造了。框架

好比上圖中elment.py當中的鼠標操做。在selenium當中,ActionChains類是用來專門實現鼠標操做的。dom

以元素雙擊操做爲例,若是使用python+selenium庫來實現雙擊操做,須要如下代碼:ide

 

 

在SeleniumLibrary當中,關鍵字double click element 就將元素和鼠標雙擊操做封裝在一塊兒。只要傳入元素定位便可(以下圖所示)。網站

 

 

 

 

三、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 設置截圖存儲目錄。

 

 

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

相關文章
相關標籤/搜索