robotframework框架 - seleniumLibrary 關(guān)鍵字解讀-全攻略

在robotframework當(dāng)中往弓,要實(shí)現(xiàn)web自動(dòng)化旦装,則需要使用SeleniumLibrary這個(gè)庫(kù)访递。

目前版本中,有180+關(guān)鍵字同辣。隨著版本的更新拷姿,關(guān)鍵字的個(gè)數(shù)和名字也會(huì)有所變動(dòng)。

在網(wǎng)上沒有找到較為全面的關(guān)于這個(gè)庫(kù)的關(guān)鍵字介紹旱函,所以此篇文章作為一個(gè)匯總响巢,列舉常用的關(guān)鍵字。

1棒妨、SeleniumLibrary的安裝:

前提:已安裝好python環(huán)境并配置好環(huán)境變量踪古。然后在命令行當(dāng)中,運(yùn)行以下命令:


2券腔、SeleniumLibrary結(jié)構(gòu)伏穆、和Selenium的關(guān)系

SeleniumLibrary是一個(gè)python第三方庫(kù)(存放在python安裝目錄下的Lib/site-packages/SeleniumLibrary)。它的結(jié)構(gòu)如下纷纫,其中keywords目錄下存放的是關(guān)鍵字枕扫。

在源碼中,是分門別類的來(lái)存放關(guān)鍵字辱魁。包括alert彈框烟瞧、表格/select/iframe等元素操作诗鸭、等待、窗口等参滴。

SeleniumLibrary的源代碼中强岸,很多地方都直接使用了selenium的API來(lái)封裝網(wǎng)頁(yè)的操作,可以說(shuō)是在selenium之上砾赔,封裝了更多的元素操作關(guān)鍵字悯恍,提供給robot框架的使用者晴裹。畢竟有現(xiàn)成的“輪子”,就沒有必要再重新造了。

比如上圖中elment.py當(dāng)中的鼠標(biāo)操作前标。在selenium當(dāng)中系枪,ActionChains類是用來(lái)專門實(shí)現(xiàn)鼠標(biāo)操作的单料。

以元素雙擊操作為例固该,如果使用python+selenium庫(kù)來(lái)實(shí)現(xiàn)雙擊操作,需要以下代碼:


在SeleniumLibrary當(dāng)中脆诉,關(guān)鍵字double click element 就將元素和鼠標(biāo)雙擊操作封裝在一起甚亭。只要傳入元素定位即可(如下圖所示)。


3击胜、SeleniumLibrary關(guān)鍵字分類解讀

1)引入SeleniunLibrary庫(kù)時(shí)亏狰,初始化參數(shù)

SeleniumLibrary在robotframework當(dāng)中,引入時(shí)會(huì)將SeleniumLibrary這個(gè)類初始化偶摔。

初始化的參數(shù)是對(duì)所有關(guān)鍵字生效的暇唾。


Timeout:等待超時(shí)時(shí)間。關(guān)鍵字當(dāng)中有timeout參數(shù)的辰斋,都使用此處的默認(rèn)值策州,5秒。

Implicit wait: 隱性等待時(shí)長(zhǎng)宫仗。0.0表示沒有隱性等待够挂。

run on failure: 關(guān)鍵字運(yùn)行失敗時(shí)的動(dòng)作。Capture Page Screenshot是截取頁(yè)面圖片的關(guān)鍵字藕夫。表示運(yùn)行失敗時(shí)孽糖,自動(dòng)截取當(dāng)前網(wǎng)頁(yè)圖片, 即失敗時(shí)自動(dòng)截圖功能毅贮。

Screenshot root directory: 截取的網(wǎng)頁(yè)圖片存放路徑 办悟。None表示不指定路徑 ,默認(rèn)與輸出文件同目錄滩褥。

我們?cè)趓obot當(dāng)中引入SeleniumLibrary時(shí)病蛉,可以修改默認(rèn)參數(shù)值。比如修改默認(rèn)timeout為15s

2)元素定位語(yǔ)法:

在web自動(dòng)化當(dāng)中,有8大定位方式铡恕。無(wú)論用什么樣的語(yǔ)言/框架,定位方式都是通用的丢间。

在robot框架當(dāng)中探熔,定位語(yǔ)法有以下2種表達(dá)方式:

  1. 定位策略:定位表達(dá)式(比如 id:kw)

  2. 定位策略=定位表達(dá)式(比如 id=kw)

在robot當(dāng)中,除了8大定位方式以外烘挫,還額外擴(kuò)展了幾種诀艰,整體的定位方式如下(摘抄自官方文檔):

示例:
Click Element id:foo # 點(diǎn)擊id為foo的元素。
Click Element css:div#foo h1 # 點(diǎn)擊 id為foo的div元素后代當(dāng)中的h1元素
Click Element xpath=//div[@id="foo"]//h1 # 同上一個(gè)饮六。
Click Element //*[contains(text(), "example")] # 點(diǎn)擊 文本內(nèi)容包含example的元素

注意:xpath定位表達(dá)式可省略前綴:xpath其垄。

3)瀏覽器和窗口操作關(guān)鍵字
關(guān)鍵字名稱 關(guān)鍵字說(shuō)明
open browser 打開瀏覽器并訪問(wèn)系統(tǒng)地址。url:網(wǎng)站地址,browser:瀏覽器類型
close browser 關(guān)閉瀏覽器
maximize browser window 當(dāng)前窗口最大化
get window size 獲取當(dāng)前窗口的大小
set window size 設(shè)置窗口大小
get window handles 獲取瀏覽器中卤橄,所有窗口的句柄
switch window 切換窗口绿满。可根據(jù)窗口的句柄窟扑、標(biāo)題喇颁、名稱等切換
get window names 獲取瀏覽器,所有窗口的名稱
get window titles 獲取所有窗口的標(biāo)題
get locations 獲取所有窗口的url
4)元素通用操作關(guān)鍵字(包含鼠標(biāo)/鍵盤操作):
關(guān)鍵字名稱 關(guān)鍵字說(shuō)明
click ement 點(diǎn)擊元素
input text 在元素中輸入文本值
get element attribute 獲取元素的某一個(gè)屬性值
get element size 獲取元素的大小
get value 獲取元素的value屬性值
get text 獲取元素的文本內(nèi)容
clear element text 清除元素的文本值
get webelement 獲取一個(gè)元素對(duì)象嚎货。WebElment對(duì)象橘霎。
get webelements 獲取匹配的所有元素對(duì)象。WebElment對(duì)象
set focus to element 元素獲取焦點(diǎn)
double click element 雙擊元素
scroll element into view 滾動(dòng)元素到可見區(qū)域
drag and drop 將一個(gè)元素拖拽到另一個(gè)元素區(qū)域中
mouse over 鼠標(biāo)懸浮在元素上
press keys 鍵盤按鍵操作
5)select/frame/alert/表格等操作關(guān)鍵字:
關(guān)鍵字名稱 關(guān)鍵字說(shuō)明
get list items select/option元素中殖属,獲取所有的options選項(xiàng)
select from list by index select/option元素中姐叁,根據(jù)下標(biāo)來(lái)選擇option選項(xiàng)
select from list by value select/option元素中,根據(jù)value屬性來(lái)選擇option選項(xiàng)
select from list by label select/option元素中洗显,根據(jù)文本內(nèi)容來(lái)選擇option選項(xiàng)
select frame 切換到指定的iframe當(dāng)中
unselect frame 退出iframe外潜,切換到默認(rèn)的html頁(yè)面中
handle alert 關(guān)閉alert彈出框
input text into alert 輸入文本到alert彈框中,并關(guān)閉alert彈出框
choose file 在上傳文件的輸入框中(input元素的type為file)輸入文本地址
get table cell 獲取表格的單元格值挠唆。行號(hào)和列號(hào)起始值為1.包含表頭和表尾所對(duì)應(yīng)的行
6)元素等待關(guān)鍵字

(關(guān)鍵字中包含wait的, timeout參數(shù)默認(rèn)為seleniumlibrary初始化值橡卤,默認(rèn)為5秒):

關(guān)鍵字名稱 關(guān)鍵字說(shuō)明
wait for condition 等待條件成立:條件為js表達(dá)式,表達(dá)式的結(jié)果要為布爾值损搬。
wait until element is visible 等待指定的元素可見
wait until element is not visible 等待指定的元素不可見
wait until element is enabled 等待指定的元素可用
wait until element contains 等待指定的元素 包含 指定的文本內(nèi)容
wait until element does not contain 等待指定的元素 不包含 指定的文本內(nèi)容
wait until page contains element 等待頁(yè)面 包含指定的元素
wait until page contains element 等待頁(yè)面 不包含指定的元素
wait until page contains 等待頁(yè)面 包含指定的文本內(nèi)容
wait until page does not contain 等待頁(yè)面 不包含指定的文本內(nèi)容
7)斷言關(guān)鍵字(關(guān)鍵字中包含should的均是):
關(guān)鍵字名稱 關(guān)鍵字說(shuō)明
page should contain element 頁(yè)面應(yīng)當(dāng) 包含指定的元素
page should not contain element 頁(yè)面應(yīng)當(dāng) 不包含指定的元素
locator should match x times 元素定位表達(dá)式應(yīng)該匹配 指定 次數(shù)
element should be visible 指定的元素 應(yīng)當(dāng)可見
element should not be visible 指定的元素 應(yīng)當(dāng)不可見
element should be enabled 指定的元素 應(yīng)當(dāng)可用
element should be disabled 指定的元素 應(yīng)當(dāng)不可用
element text should be 指定元素的文本內(nèi)容 應(yīng)當(dāng)是 指定內(nèi)容
element text should not be 指定元素的文本內(nèi)容 應(yīng)當(dāng)不是 指定內(nèi)容

還有很多其它斷言的關(guān)鍵字碧库,不一一列舉。

8)截屏類關(guān)鍵字:
關(guān)鍵字名稱 關(guān)鍵字說(shuō)明
capture page screenshot 截取當(dāng)前頁(yè)面圖片
capture element screenshot 截取指定元素的圖片
set screenshot directory 設(shè)置截圖存儲(chǔ)目錄

4巧勤、robot - web自動(dòng)化使用示例

希望本文對(duì)你有所幫助~如果對(duì)軟件測(cè)試嵌灰、接口測(cè)試、自動(dòng)化測(cè)試颅悉、面試經(jīng)驗(yàn)交流感興趣可以加入我們沽瞭。642830685,免費(fèi)領(lǐng)取最新軟件測(cè)試大廠面試資料和Python自動(dòng)化剩瓶、接口驹溃、框架搭建學(xué)習(xí)資料城丧!技術(shù)大牛解惑答疑,同行一起交流豌鹤。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末亡哄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子布疙,更是在濱河造成了極大的恐慌蚊惯,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灵临,死亡現(xiàn)場(chǎng)離奇詭異截型,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)儒溉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門宦焦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人顿涣,你說(shuō)我怎么就攤上這事赶诊。” “怎么了园骆?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵舔痪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我锌唾,道長(zhǎng)锄码,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任晌涕,我火速辦了婚禮滋捶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘余黎。我一直安慰自己重窟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布惧财。 她就那樣靜靜地躺著巡扇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪垮衷。 梳的紋絲不亂的頭發(fā)上厅翔,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音搀突,去河邊找鬼刀闷。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的甸昏。 我是一名探鬼主播顽分,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼施蜜!你這毒婦竟也來(lái)了卒蘸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤花墩,失蹤者是張志新(化名)和其女友劉穎悬秉,沒想到半個(gè)月后澄步,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冰蘑,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年村缸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了祠肥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡梯皿,死狀恐怖仇箱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情东羹,我是刑警寧澤剂桥,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站属提,受9級(jí)特大地震影響权逗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冤议,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一斟薇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恕酸,春花似錦堪滨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至义矛,卻和暖如春犯眠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背症革。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工筐咧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓量蕊,卻偏偏與公主長(zhǎng)得像铺罢,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子残炮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容