css
目前版本中,有180+關鍵字。隨着版本的更新,關鍵字的個數和名字也會有所變更。html
在網上沒有找到較爲全面的關於這個庫的關鍵字介紹,因此此篇文章做爲一個彙總,列舉經常使用的關鍵字。python
前提:已安裝好python環境並配置好環境變量。而後在命令行當中,運行如下命令:jquery
pip install --upgrade robotframework-seleniumlibrary
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在robotframework當中,引入時會將SeleniumLibrary這個類初始化。
初始化的參數是對全部關鍵字生效的。
Timeout:等待超時時間。關鍵字當中有timeout參數的,都使用此處的默認值,5秒。
Implicit wait: 隱性等待時長。0.0表示沒有隱性等待。
run on failure: 關鍵字運行失敗時的動做。Capture Page Screenshot是截取頁面圖片的關鍵字。表示運行失敗時,自動截取當前網頁圖片, 即失敗時自動截圖功能。
Screenshot root directory: 截取的網頁圖片存放路徑 。None表示不指定路徑 ,默認與輸出文件同目錄。
咱們在robot當中引入SeleniumLibrary時,能夠修改默認參數值。好比修改默認timeout爲15s
在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 | |
---|---|---|
Click Element | css:div#foo h1 | |
Click Element | xpath=//div[@id="foo"]//h1 | |
Click Element | //*[contains(text(), "example")] |
注意:xpath定位表達式可省略前綴:xpath。
關鍵字名稱 | 關鍵字說明 |
---|---|
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。 |
關鍵字名稱 | 關鍵字說明 |
---|---|
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 | 鍵盤按鍵操做。 |
關鍵字名稱 | 關鍵字說明 |
---|---|
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.包含表頭和表尾所對應的行。 |
關鍵字名稱 | 關鍵字說明 |
---|---|
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 | 等待頁面 不包含指定的文本內容 |
關鍵字名稱 | 關鍵字說明 |
---|---|
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 | 指定的元素 應當爲焦點狀態 |
還有不少其它斷言的關鍵字,不一一列舉。
關鍵字名稱 | 關鍵字說明 |
---|---|
capture page screenshot | 截取當前頁面圖片。 |
capture element screenshot | 截取指定元素的圖片。 |
set screenshot directory | 設置截圖存儲目錄。 |