轉發自:http://blog.csdn.net/cuipan1234/article/details/70926681
示例一:
在登錄界面,輸入用戶名密碼后,點擊登錄未能出現跳轉至系統首頁,而是跳轉至報錯頁面
${url}是登錄鏈接地址,buc_login_keywords是做了登錄關鍵字封裝
- adm_login
- [Documentation] BUC登錄
- Open_Browser ${url} chrome
- #如登錄失敗,則重新打開登錄界面
- : FOR ${i} IN RANGE 6
- \ buc_login_keywords #BUC登錄關鍵字
- \ sleep 2
- \ ${title_text} get_title #獲取itle文本信息
- \ Run_keyword_if '${title_text}'=='廣告管理系統' Exit_for_loop #結束for
- \ Run_keyword_if '${title_text}'!='廣告管理系統' go_to ${url}
示例二:
登錄成功后呢,進入首頁了,有時候連續運行刷新首頁后,首頁沒有打開
- 等待未出現重新打開首頁
- : FOR ${num} IN RANGE 5
- \ Set_Browser_Implicit_Wait 7 #隱式等待
- \ ${Not_Contain} Run_keyword_and_return_status Page_Should_Not_Contain_Element Xpath=//b[text()='歡迎登錄廣告管理系統!'] #判斷界面元素是否出現
- \ ${No_Permission} Run_keyword_and_return_status Page_Should_Contain_Element Xpath=//div[@class='ext-mb-content']/span #出現提示"請申請權限"
- \ Run_keyword_if '${No_Permission}'=='True' go_to ${link} #如果刷新出現了提示"請申請權限",則重新打開首頁鏈接
- \ Run_keyword_if '${Not_Contain}'=='True' go_to ${link} #如沒有包含歡迎語,則重新打開首頁鏈接
- \ Run_keyword_if '${Not_Contain}'=='False' Exit_for_loop
這里多出來了個“請申請權限”提示,因為自動化運行時間長了,偶爾會彈出
“請申請權限”提示,所以也加了個判斷(可能是系統的bug)
示例三:
例如有時候加載頁簽時也是不能打開頁簽,或者打開太慢了,也可以判斷頁面中某個元素如果沒有出現的話,則重新點擊菜單
界面是這樣子的

加載成功后是這樣子

所以我需要判斷界面上的第一個復選框是否存在,如存在則結束FOR,如等待超時則重新點擊“全部投放情況查詢”菜單
代碼貼出來
這里有個iframe,我也做了判斷
For里依次是:
第一句:進入frame
第二句:獲取界面元素(上圖的復選框),並返回狀態(True 或 False)
第三句:判斷如果復選框不存在,則關掉frame(需要關掉frame,不然下一步可能會找不到frame了)
第四句:判斷如果復選框不存在,則點擊左側的二級菜單,重新點擊“全部投放管理”
第六句:這里有一個離開頁面確認(因為這個界面可以直接在列表編輯,關閉 或者 點擊其他菜單都會進行確認是否離開)
第七句:如果發現了元素(復選框),則結束for循環,繼續下一步操作
- Click_Element Xpath=//b[text()='系統投放管理']
- Sleep 1
- Click_Element Xpath=//span[text()='全部投放情況查詢']
- Sleep 1
- #如果"全部投放情況查詢"頁簽未能打開,則循環重新點擊"全部投放情況查詢"菜單
- : FOR ${num} IN RANGE 3
- \ Select_frame Xpath=//iframe[@src='/syscast/AllCastSearch.jsp?s_m_i=100035467']
- \ ${Not_Visible} Run_keyword_and_return_status Wait_Until_Page_Contains_Element Xpath=//div[@class='x-grid3-locked']/div[2]/div/div[1]//td[1]/div/div 10
- \ Run_keyword_if '${Not_Visible}'=='False' Unselect_Frame #如果沒有發現查詢結果頁第一個復選框,則關閉iframe
- \ Run_keyword_if '${Not_Visible}'=='False' Click_Element Xpath=//span[text()='全部投放情況查詢'] #如果沒有發現查詢結果頁第一個復選框,則重新點擊"全部投放情況查詢"菜單
- \ Sleep 1
- \ Run_keyword_if '${Not_Visible}'=='False' Click_Element Xpath=//button[@class=' x-btn-text' and text()='是'] #重新點擊菜單后,需要確認
- \ Run_keyword_if '${Not_Visible}'=='True' Exit_For_Loop
看完是不是覺得其實也挺簡單的,其實很多地方也可以這么做,加個方法判斷,特別是上一步操作后,下一步的操作在這個界面上,但是界面沒有刷新出來,就說這么多吧