zoukankan      html  css  js  c++  java
  • 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  

    看完是不是觉得其实也挺简单的,其实很多地方也可以这么做,加个方法判断,特别是上一步操作后,下一步的操作在这个界面上,但是界面没有刷新出来,就说这么多吧
  • 相关阅读:
    自动化测试工具Gauge--contexts 与 Tear Down steps
    Redis官网第一次闲逛
    针对 《Linux就该这么学》 之 “第三章---管道符、重定向、环境变量” 摘抄、操练及拓展
    父shell 和 子shell; shell脚本的几种执行方式
    麒麟操作系统操练Linux基操
    HTTP代理
    gcc/g++ 安全编码
    golang 生成rsa秘钥对
    depth of feild
    Emission pass
  • 原文地址:https://www.cnblogs.com/maxiaotu/p/7127186.html
Copyright © 2011-2022 走看看