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

看完是不是觉得其实也挺简单的,其实很多地方也可以这么做,加个方法判断,特别是上一步操作后,下一步的操作在这个界面上,但是界面没有刷新出来,就说这么多吧

时间: 2024-08-01 22:01:29

robotframework 下的重新加载页面的处理的相关文章

页面滚动动态加载数据,页面下拉自动加载内容 jquery

<!DOCTYPE=html> <html> <head> < script src="js/jquery.js" type="text/javascript"></ script> < script type="text/javascript"> $(document).ready(function(){ var range = 50; //距下边界长度/单位px var

jquery加载页面的方法(页面加载完成就执行)

jquery加载页面的方法(页面加载完成就执行) jquery加载页面的方法(页面加载完成就执行),建议大家看下windows.onload与$(document).ready之间的区别. 1.$(function(){  $("#a").click(function(){  //adding your code here  }); }); 2.$(document).ready(function(){  $("#a").click(function(){  //a

浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入

在<浏览器环境下JavaScript脚本加载与执行探析之defer与async特性>中,我们研究了延迟脚本(defer)和异步脚本(async)的执行时机.浏览器支持情况.浏览器bug以及其他的细节问题.而除了defer和async特性,动态脚本和Ajax脚本注入也是两种常用的创建无阻塞脚本的方法.总的来看,这两种方法都能达到脚本加载不影响页面解析和渲染的作用,但是在不同的浏览器中,这两种技术所创建的脚本的执行时机还是有一定差异,今天我们再来探讨一下通过动态脚本技术和Ajax注入的脚本在这些方

easyui的tab加载页面中的form重复提交

http://blog.csdn.net/fxz1982/article/details/8987769 Easyui中的tabs组件以href方式加载目标页面,如果目标页面中有dialog或者window这类的easyui组件中放了form.那么在关闭这个tab再次打开.如果进行form提交操作,后台就会收到两次提交请求,再次重复以上操作会收到3次提交请求,如果将表单serialize()后以jquery的post提交服务器将收到值全是数组方式组织的. 经分析发现,Easyui的tab加载页面

Ajax滚动加载页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title>  <m

使用jquery的load方法设计动态加载,并解决被加载页面JavaScript失效问题

一.问题分析 对于后台系统,相比大家都有所印象,知道其中的布局结构,如图: 在这种布局中我们需要将header,sidebar,footer分开,而且对于中间部分的content内容需要动态变化,即根据不同菜单定位到不同页面,而整体布局不会变化 这种布局结构对于单纯的HTML不具备这种嵌入各部分内容的能力,所以就需要我们自己来寻找或者解决这种问题,由于jquery的兼容性和使用广度比较不错,这里 使用jquery的load方法来处理这种页面布局框架. 二.load方法详解 1.定义 $(sele

VS2015 Cordova实现WebView加载页面进度条(Android)

因为使用Cordova做app时,加载页面没有进度条,用户无法感知打开进度,故加入进度条,具体实现如下: 1.  如果项目没有生成过apk,需先生成一次,这样在项目下面才会出现platforms/android的文件夹. 2.  进入项目/platforms/android/src文件夹下,在你程序包名目录下找到你的MainActivity.java文件,增加一个Dialog和ProgressBar用来显示页面加载进度,具体代码实现如下: 1 /* 2 Licensed to the Apach

加载页面(Loading)

/* 文件说明:页面加载时Loading JS 文件描述:解决IE或FF下,初始化加载时,页面布局乱掉的问题,参考:*/var width = $(window).width();var height = $(window).height(); var html = "<div id='loading' style='position:absolute;left:0;z-index:999999;width:100%;height:" + height + "px;to

早上研究了下jsp的加载顺序,顺便复习下jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <%@ include file="