【web自动化测试Robotframework开发手册—特殊元素】
基于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开发手册—特殊元素】相关推荐
- 【web自动化测试Robotframework开发手册—浏览器切换url和打开新页签】
在使用robotframework+selenium2library框架进行web自动化测试的开发过程中,测试对象有时候会涉及到多个web网址,这时候该怎么切换浏览器的窗口或打开新url页签呢? 1. ...
- 〖Python WEB 自动化测试实战篇⑥〗- selenium元素定位之find-elements
万叶集
- Web自动化测试中使用groovy实现页面的对象化
一. 现状 在自动化的过程中, 我们知道web自动化测试的开发和维护成本是比较高的,能否采用技术以及流程改进等手段来降低web自动化测试的成本呢? 我们先看看目前的实现方式,通常,实现步骤如下:(1) ...
- 软件测试 自动化测试 Web自动化测试01 selenium 定位元素方法 元素操作 自动化脚本开发
文章目录 1 自动化测试概述 1.1 测试的目的 1.2 自动化测试的优点 1.3 自动化测试的缺点 1.4 自动化测试工具 1.5 自动化测试流程 2 selenium基础 2.1 selenium ...
- 《HTML5开发手册》——2.4 初学者“菜谱”:使用address元素提供通信信息
本节书摘来自异步社区<HTML5开发手册>一书中的第2章,第2.4节,作者: [美]Chuck Hudson , [英]Tom Leadbetter 更多章节内容可以访问云栖社区" ...
- java不进入for_为什么阿里巴巴Java开发手册中强制要求不要在foreach循环里进行元素的remove和add操作?...
在阅读<阿里巴巴Java开发手册>时,发现有一条关于在 foreach 循环里进行元素的 remove/add 操作的规约,具体内容如下: 错误演示 我们首先在 IDEA 中编写一个在 f ...
- 《HTML5开发手册》——1.5 初学者“菜谱”:使用nav元素创建导航
本节书摘来自异步社区<HTML5开发手册>一书中的第1章,第1.5节,作者: [美]Chuck Hudson , [英]Tom Leadbetter 更多章节内容可以访问云栖社区" ...
- 2019 Selenium3与Python3实战开发Web自动化测试框架(三)
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :2019 Selenium3与Python3实战开发Web自动化测试框架(二)_cdtaogang's ...
- 为什么阿里巴巴Java开发手册中强制要求不要在foreach循环里进行元素的remove和add操作...
在阅读<阿里巴巴 Java 开发手册>时,发现有一条关于在 foreach 循环里进行元素的 remove/add 操作的规约,具体内容如下:"不要在foreach循环里进行 r ...
最新文章
- 服务器每秒钟执行命令数量是什么_如何合理的评估上线服务器数量
- python自动华 (七)
- 深入理解Golang 编程思维和工程实战
- linux文本处理常用指令总结
- 基于SVD的降维优化
- [转]WeiFenLuo.winFormsUI.Docking.dll的使用(简单入门版)
- tcp协议报文和三次握手与四次挥手
- bootstrap按钮组(二)
- 集中刷新父窗口,关闭子窗口的JS(后台)
- TDD 测试驱动开发
- python帮助文档中文版下载-Python中文文档
- 公交车管理系统C语言
- 企业级PHP后台开发框架
- 解决esp8266无法连接手机和电脑热点的问题
- 专线多个ip 虚拟服务器,一个云服务器可以做几个ip虚拟机
- Android启动优化
- Java实现 | 基于朴素贝叶斯的情感词分析
- 用Python3为您随机产生一个密码,是不是很高级嘞?
- 调研:暴力恐怖犯罪识别(图像识别)
- 滴滴23届校招薪资正式开奖!算法岗最高 55w
热门文章
- 如何修理无线网络电视服务器,win7实现无线投屏到电视_网站服务器运行维护
- Photoshop文字之——制作晶莹剔透胶体特效
- caffe内CHECK_EQ等函数意义解释
- PC微信 HOOK 接口 (版本:3.6.0.18)
- 【云原生 | Docker 基础篇】03、Docker 阿里云镜像加速器
- 四阶魔方java1002四阶魔方java_4x4四阶魔方一看就懂,超简单入门图文教程1:基本知识和操作...
- Winform中给下拉框(ComboBox或LookUpEdit)添加内容
- 自考知识电脑图计算机组成原理,自考“计算机组成原理”考试大纲
- i7 10870h和i7 10875h 的区别
- Python报错TypeError: Descriptors cannot not be created directly