1、窗口關鍵字使用python
一、當前瀏覽器彈出新的窗口jquery
使用Select Window和Close Window處理彈出窗口。實際使用中Select Window不必定會一次選中,一般會結合Wait Until Keyword Succeeds一塊兒使用。關閉主窗口時要先選擇Select Window Main才能夠進行操做。chrome
注:在Select Window時,會遇到模態窗口,這種窗口不必定能直接選擇到,能夠經過handle操做窗口的關鍵字,select window by handle(經過handle選擇window);get window handles(獲取當前線程全部窗口的handles,返回List);get current window handle(獲取當前窗口的handle)windows
二、從新打開一個新的瀏覽器瀏覽器
Open Browser打開2個瀏覽器,用Switch Browser來進行切換,參數是打開瀏覽器indes順序或alias別名,關閉全部瀏覽器用Close All Browsers。app
三、Frame異步
select frame 和 unselect frame,若遇到元素在頁面中但找不到,就要看看是否是在frame或iframe裏,先select frame選擇操做,再回到frame外操做費其餘元素,就要unselect frame出去。(注:進去的時候要一層層的進入,出來的時候直接就出來了,若要再對第二層或第一層進行操做就要從新進入)async
2、Element函數
一、press key模擬鍵盤操做,「press key\\13」模擬回車。測試
二、Assign id to element 若一個對象沒有id,能夠給它指定一個id
三、AutoItLibrary鼠標操做mouse down,mouse up,mouse over,mouse out
四、Get horizontal position、get vertical position用來獲取當前對象的左上角頂點距離整個頁面的橫座標和縱座標。
五、獲取頁面元素,get value、get text,若要獲取元素的其餘屬性值則用get element attribute關鍵字,如class值,get element attribute element_id@class來獲取
3、formelement
checkbox(select checkbox和unselect checkbox複選框的勾選),radio buttons(select radio button關鍵字),text fields(choose file(用於上傳文件的時候選擇文件)、input text、input password(日誌上不會把密碼打印出來)),button.form直接有關的關鍵字就一個submit form用於提交表單的
4、SelectElement
列表框:單選、多選,選擇列表框中的某一項,須要使用select from list,select from list by index、select from list by value、select from list by label。多選框所有選擇能夠用select all from list。若想知道列表框裏都有什麼列表項,能夠用get list items來獲取全部列表項。
5、tableElement
get table cell,click element at table cell、click link at table cell用於點擊表格指定單元格里的元素和連接。get index in table column和get index in table row用來獲取某個文本在表格的哪一行哪一列。
6、JavaScript
execute JavaScript和execute async JavaScript(異步執行,在函數最後加上回調來返回結果,若超時時間內沒有執行完成則會失敗)用於執行JavaScript腳本。
confirm action自動進行對話框的確認,若要點擊取消,則先用choose cancel on next confirmation進行設置,再用confirm action。恢復點贊成,一樣先要choose ok on next confirmation。
7、screenshot
只有一個關鍵字capture page screenshot,對當前頁面進行截圖(截圖是基於當前瀏覽器的頁面進行的,若此時頁面被關閉了,就沒法使用了,可用RF自帶的截圖庫裏的方法進行截圖)。
8、waiting
wait for condition、wait until page contains、wait until page contains element,通常用BuiltIn裏的關鍵字Wait Until Keyword Succeeds較多。
其餘:
處理上傳文件,點擊瀏覽按鈕
Choose File file ${CURDIR}${/}text.tar
${file} Get Value file
*自定義方法放在D:\Python27\Lib\site-packages下,而後在Test Suite處導入便可使用。
*運行時報錯:unexpected error: C:\Users\nick\AppData\Local\Programs\Python\Python36-32\python.exe: Error while finding module specification for 'robot.run' (ModuleNotFoundError: No module named 'robot'),去Python安裝目錄Python27\Scripts下將 pybot.bat中 python -m robot.run %* 改爲 python2 -m robot.run %* 可經過,由於同時安裝了Python2和Python3
*添加桌面快捷方式
二、在RIDE腳本工程中 引用。推薦方式以下:
a、先建立資源文件:new resource , 再在此資源文件上右鍵,建立用戶關鍵字:new user keyword
b、在test suite 中引用,設置執行方式爲:每次測試集執行完畢後調用
1)RFT引入OperatingSystem類庫;
2)新建一個關鍵字,例「CloseDriverserver」
3) 在「CloseDriverserver」輸入內容:
${RunOutput} Run taskkill /F /IM chromedriver.exe
4)在Case的TearDown中填寫「CloseDriverserver」關鍵字。
*問題處理:
robotframework中代碼執行時報UnicodeEncodeError
解決方案:
在python安裝目錄下的Lib下建立一個sitecustomize.py,內容以下:
#encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
從新啓動python後生效
*jquery定位
要是用jquery 關鍵字定位,前提是 該網站引用了jquery.min.js文件,若是沒有執行則報錯。
WebDriverException: Message: unknown error: jQuery is not defined
處理方法,直接動態掛馬(放在頁面加載以後的步驟,須要等5s時間),注意須要聯網,由於引用的是外網地址。
關鍵字: Execute Javascript
參數:
a = window.document.createElement('script');a.src='https://code.jquery.com/jquery-3.3.1.min.js';window.document.body.appendChild(a);
*上傳文件,經過windows打開本地文件,首先須要安裝AutoItLibrary,在此以前確認已安裝pywin32,不然先要安裝pywin32才能夠正常安裝,若本機爲64位,還須要安裝AutoIt(安裝時選擇...64...)
如下是測試代碼:
OpenB https://www.gaoding.com/clip? sleep 3 Click element xpath=//*[@id="app"]/div[1]/div[1]/div/div[7]/label #打開上傳界面 ${if_visible_upload} Run Keyword And Return Status Element Should Contain [CLASS:Static; INSTANCE:2] 文件名 #判斷是否包含‘文件名’並返回狀態Run Keyword If ${if_visible_upload} =='true' click button [CLASS:Button; INSTANCE:1] sleep 1 Control Send 打開 ${empty} [CLASS:Edit; INSTANCE:1] E:\\Photo\\1.jpgControl Click 打開 ${empty} [CLASS:Button; INSTANCE:1] leftclose all browsers