robotframework 下的重新加載頁面的處理


轉發自:http://blog.csdn.net/cuipan1234/article/details/70926681

 


示例一:

在登錄界面,輸入用戶名密碼后,點擊登錄未能出現跳轉至系統首頁,而是跳轉至報錯頁面

${url}是登錄鏈接地址,buc_login_keywords是做了登錄關鍵字封裝

[html]  view plain  copy
  1. adm_login  
  2.     [Documentation]    BUC登錄  
  3.     Open_Browser    ${url}    chrome  
  4.     #如登錄失敗,則重新打開登錄界面  
  5.     : FOR    ${i}    IN RANGE    6  
  6.     \    buc_login_keywords    #BUC登錄關鍵字  
  7.     \    sleep    2  
  8.     \    ${title_text}    get_title    #獲取itle文本信息  
  9.     \    Run_keyword_if    '${title_text}'=='廣告管理系統'    Exit_for_loop    #結束for  
  10.     \    Run_keyword_if    '${title_text}'!='廣告管理系統'    go_to    ${url}  


示例二:

登錄成功后呢,進入首頁了,有時候連續運行刷新首頁后,首頁沒有打開

[html]  view plain  copy
  1. 等待未出現重新打開首頁  
  2.     : FOR    ${num}    IN RANGE    5  
  3.     \    Set_Browser_Implicit_Wait    7    #隱式等待  
  4.     \    ${Not_Contain}    Run_keyword_and_return_status    Page_Should_Not_Contain_Element    Xpath=//b[text()='歡迎登錄廣告管理系統!']    #判斷界面元素是否出現  
  5.     \    ${No_Permission}    Run_keyword_and_return_status    Page_Should_Contain_Element    Xpath=//div[@class='ext-mb-content']/span    #出現提示"請申請權限"  
  6.     \    Run_keyword_if    '${No_Permission}'=='True'    go_to    ${link}    #如果刷新出現了提示"請申請權限",則重新打開首頁鏈接  
  7.     \    Run_keyword_if    '${Not_Contain}'=='True'    go_to    ${link}    #如沒有包含歡迎語,則重新打開首頁鏈接  
  8.     \    Run_keyword_if    '${Not_Contain}'=='False'    Exit_for_loop      


這里多出來了個“請申請權限”提示,因為自動化運行時間長了,偶爾會彈出 “請申請權限”提示,所以也加了個判斷(可能是系統的bug)

示例三:

例如有時候加載頁簽時也是不能打開頁簽,或者打開太慢了,也可以判斷頁面中某個元素如果沒有出現的話,則重新點擊菜單

界面是這樣子的




加載成功后是這樣子



所以我需要判斷界面上的第一個復選框是否存在,如存在則結束FOR,如等待超時則重新點擊“全部投放情況查詢”菜單

代碼貼出來

這里有個iframe,我也做了判斷

For里依次是:

第一句:進入frame

第二句:獲取界面元素(上圖的復選框),並返回狀態(True 或 False)

第三句:判斷如果復選框不存在,則關掉frame(需要關掉frame,不然下一步可能會找不到frame了)

第四句:判斷如果復選框不存在,則點擊左側的二級菜單,重新點擊“全部投放管理”

第六句:這里有一個離開頁面確認(因為這個界面可以直接在列表編輯,關閉 或者 點擊其他菜單都會進行確認是否離開)

第七句:如果發現了元素(復選框),則結束for循環,繼續下一步操作

[html]  view plain  copy
  1. Click_Element    Xpath=//b[text()='系統投放管理']  
  2. Sleep    1  
  3. Click_Element    Xpath=//span[text()='全部投放情況查詢']  
  4. Sleep    1  
  5. #如果"全部投放情況查詢"頁簽未能打開,則循環重新點擊"全部投放情況查詢"菜單  
  6. : FOR    ${num}    IN RANGE    3  
  7. \    Select_frame    Xpath=//iframe[@src='/syscast/AllCastSearch.jsp?s_m_i=100035467']  
  8. \    ${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  
  9. \    Run_keyword_if    '${Not_Visible}'=='False'    Unselect_Frame    #如果沒有發現查詢結果頁第一個復選框,則關閉iframe  
  10. \    Run_keyword_if    '${Not_Visible}'=='False'    Click_Element    Xpath=//span[text()='全部投放情況查詢']    #如果沒有發現查詢結果頁第一個復選框,則重新點擊"全部投放情況查詢"菜單  
  11. \    Sleep    1  
  12. \    Run_keyword_if    '${Not_Visible}'=='False'    Click_Element    Xpath=//button[@class=' x-btn-text' and text()='是']    #重新點擊菜單后,需要確認  
  13. \    Run_keyword_if    '${Not_Visible}'=='True'    Exit_For_Loop  

看完是不是覺得其實也挺簡單的,其實很多地方也可以這么做,加個方法判斷,特別是上一步操作后,下一步的操作在這個界面上,但是界面沒有刷新出來,就說這么多吧

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM