基于robotframework框架的web自动化测试,关于一些特殊元素的定位使用:

1.点击下拉 li菜单

先click 上级菜单

然后 wait untl page contains element 下级菜单链接

然后click element下级菜单的链接

2.悬停下拉li菜单

先Mouse over 上级菜单

然后 focus 下级菜单

然后 Mouse Over 下级菜单

然后 click element 下级菜单(chrome用execute Javascript $(‘下级菜单css定位’).click())

3.textarea自动换行

获取text

4.悬停下拉li动态选项框

步骤1:由于li列表是动态的,从数据库查询才能知道li选项的个数(或者用execute javascript 统计li的个数),所以本例子先从数据库查询得到选项的个数,选项名称,选项ID

由于每个li链接并不是click就能跳转,它的onclick事件是一个js的加载事件reload(x),且x为选项ID;

步骤2:根据选项个数,要选择的选项名称与数据库中的返回的名称循环比对,找到它在数组中的序号,那么页面选项的数组中序号也是这个,由此可以找到匹配的选项ID;

步骤3:Muse over 上级菜单,然后执行execute javascript reload(x)

5.日期选择输入框

上面这种日期选择框,可以直接用input text来输入起止日期;

今天——近30天,则都是link,可以直接click element来操作;

6.点击弹出选择窗口

上述这种选择窗口,直接点击清除,然后定位筛选输入框,输入查询的选项,然后select checkbox 定位到要选择的那个选项,或直接click element定位到复选框,最后点击窗口外面的空白处,完成输入;

7.table展示列表单元格各值获取

先获取列表记录行数,然后再循环GET text 定位到单元格(以行数tr下标循环);

当列表记录中有数据为0的记录,而数据库查询不展示数据为0的记录时,比对数据时,可以做如下处理:

comment 用${j}统计数为0的天数

${j}= RunKeyword If         ${each_totalv}==0   Evaluate  int(${j}+1) ELSE Evaluate  int(${j}+0)

comment 数据库返回的数据是不包含数为0的,所以数组的下标要计算一下,减掉数为0的,${i}-${j},且这个下标要小于数据库返回的数据个数;页面上获取的三种值分别与数据库返回的值进行一一比对;

${compare1}=  Run Keyword If         ${each_totalv}>0and (${i}-${j})<${re[0]} Evaluate  ${eachday_total}-${re[4][${i}-${j}]}  ELSE         SetVariable      0

${compare2}=  Run Keyword If         ${each_totalv}>0and (${i}-${j})<${re[0]} Evaluate  ${certainFile}-${re[2][${i}-${j}]}         ELSE         SetVariable      0

${compare3}=  Run Keyword If         ${each_totalv}>0and (${i}-${j})<${re[0]} Evaluate  ${reviewFile}-${re[3][${i}-${j}]} ELSE SetVariable   0

8.controlslider滑块

使用Drag And Drop By Offset (locator,xoffset,yoffset)

其中locater定位到滑块元素(可拖动的那个小块),xoffset为滑块横向偏移像素单位,正整数向右移动,负整数向左移动,yoffset为上下纵向偏移像素单位,正整数向上,负整数向下;

当想要移动到最右端或最左端,查看滑条的总长度,不要忘记扣掉拖动的小块的长度,如滑条轨道长度为213,小滑块长度为3,则210即可滑动到最右边;

9.带链接的动态列表各值获取

页面代码如上的一个鼠标悬停后展示下拉菜单,下拉菜单的选项个数的获取

可以通过

execute javescript   return $("#mc-main-inner >div.main-content.wcs-main-content.wcs-space > div.account-nav.clearfix >div > div.account-item > ul > li").length;

这里为了验证下拉菜单各选项是否正确,且反正要从数据库查选项ID;直接从数据库查询了选项的个数、选项名称、选项ID;

处理思路:

首先,从数据库查询数据选项个数、选项名称、选项ID,三元组,保存在@{Ln}中;

然后,等待页面中的选项框展示,FOR循环,比对要选择的选项名称,找到选项在数组中的下标,从而找到选项ID值所在数组下标;

接着,鼠标mouse over悬停到选项框上级菜单,展示下拉菜单,然后evaluate 将选项ID值转换为整型;

最后,执行 execute Javascript reload(${选项名称对应的ID}),等待加载后,检查选项框应显示选中的选项名称;

【web自动化测试Robotframework开发手册—特殊元素】相关推荐

  1. 【web自动化测试Robotframework开发手册—浏览器切换url和打开新页签】

    在使用robotframework+selenium2library框架进行web自动化测试的开发过程中,测试对象有时候会涉及到多个web网址,这时候该怎么切换浏览器的窗口或打开新url页签呢? 1. ...

  2. 〖Python WEB 自动化测试实战篇⑥〗- selenium元素定位之find-elements

    万叶集

  3. Web自动化测试中使用groovy实现页面的对象化

    一. 现状 在自动化的过程中, 我们知道web自动化测试的开发和维护成本是比较高的,能否采用技术以及流程改进等手段来降低web自动化测试的成本呢? 我们先看看目前的实现方式,通常,实现步骤如下:(1) ...

  4. 软件测试 自动化测试 Web自动化测试01 selenium 定位元素方法 元素操作 自动化脚本开发

    文章目录 1 自动化测试概述 1.1 测试的目的 1.2 自动化测试的优点 1.3 自动化测试的缺点 1.4 自动化测试工具 1.5 自动化测试流程 2 selenium基础 2.1 selenium ...

  5. 《HTML5开发手册》——2.4 初学者“菜谱”:使用address元素提供通信信息

    本节书摘来自异步社区<HTML5开发手册>一书中的第2章,第2.4节,作者: [美]Chuck Hudson , [英]Tom Leadbetter 更多章节内容可以访问云栖社区" ...

  6. java不进入for_为什么阿里巴巴Java开发手册中强制要求不要在foreach循环里进行元素的remove和add操作?...

    在阅读<阿里巴巴Java开发手册>时,发现有一条关于在 foreach 循环里进行元素的 remove/add 操作的规约,具体内容如下: 错误演示 我们首先在 IDEA 中编写一个在 f ...

  7. 《HTML5开发手册》——1.5 初学者“菜谱”:使用nav元素创建导航

    本节书摘来自异步社区<HTML5开发手册>一书中的第1章,第1.5节,作者: [美]Chuck Hudson , [英]Tom Leadbetter 更多章节内容可以访问云栖社区" ...

  8. 2019 Selenium3与Python3实战开发Web自动化测试框架(三)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :2019 Selenium3与Python3实战开发Web自动化测试框架(二)_cdtaogang's ...

  9. 为什么阿里巴巴Java开发手册中强制要求不要在foreach循环里进行元素的remove和add操作...

    在阅读<阿里巴巴 Java 开发手册>时,发现有一条关于在 foreach 循环里进行元素的 remove/add 操作的规约,具体内容如下:"不要在foreach循环里进行 r ...

最新文章

  1. 服务器每秒钟执行命令数量是什么_如何合理的评估上线服务器数量
  2. python自动华 (七)
  3. 深入理解Golang 编程思维和工程实战
  4. linux文本处理常用指令总结
  5. 基于SVD的降维优化
  6. [转]WeiFenLuo.winFormsUI.Docking.dll的使用(简单入门版)
  7. tcp协议报文和三次握手与四次挥手
  8. bootstrap按钮组(二)
  9. 集中刷新父窗口,关闭子窗口的JS(后台)
  10. TDD 测试驱动开发
  11. python帮助文档中文版下载-Python中文文档
  12. 公交车管理系统C语言
  13. 企业级PHP后台开发框架
  14. 解决esp8266无法连接手机和电脑热点的问题
  15. 专线多个ip 虚拟服务器,一个云服务器可以做几个ip虚拟机
  16. Android启动优化
  17. Java实现 | 基于朴素贝叶斯的情感词分析
  18. 用Python3为您随机产生一个密码,是不是很高级嘞?
  19. 调研:暴力恐怖犯罪识别(图像识别)
  20. 滴滴23届校招薪资正式开奖!算法岗最高 55w

热门文章

  1. 如何修理无线网络电视服务器,win7实现无线投屏到电视_网站服务器运行维护
  2. Photoshop文字之——制作晶莹剔透胶体特效
  3. caffe内CHECK_EQ等函数意义解释
  4. PC微信 HOOK 接口 (版本:3.6.0.18)
  5. 【云原生 | Docker 基础篇】03、Docker 阿里云镜像加速器
  6. 四阶魔方java1002四阶魔方java_4x4四阶魔方一看就懂,超简单入门图文教程1:基本知识和操作...
  7. Winform中给下拉框(ComboBox或LookUpEdit)添加内容
  8. 自考知识电脑图计算机组成原理,自考“计算机组成原理”考试大纲
  9. i7 10870h和i7 10875h 的区别
  10. Python报错TypeError: Descriptors cannot not be created directly