随笔分类 - Selenium +Java
摘要:思路: 1、将文件路径复制到剪切板 2、用robot对象模拟键盘操作即可 复制文件代码: 实现上传代码 效果:
阅读全文
摘要:写在前面: 上传文件是每个自动化测试同学会遇到,而且可以说是面试必考的问题,标准控件我们一般用sendkeys()就能完成上传,但是我们的测试网站的上传控件一般为自己封装的,用传统的上传已经不好用了,也就是说用selenium的APi已经无法完成上传操作了,这时我们就要借用第三方工具Autolt来完
阅读全文
摘要:前言 在做web自动化时,有些情况selenium的api无法完成,需要通过第三方手段比如js来完成实现,比如去改变某些元素对象的属性或者进行一些特殊的操作,本文将来讲解怎样来调用JavaScript完成特殊操作。 用法 实际案例 那么下面我们一起来练习一下: 场景1 打开百度首页,并弹窗提示hel
阅读全文
摘要:常见下拉框也分两种:一种是标准控件和非标准控件(一般为前端开发人员自己封装的下拉框),本篇文章中将重点讲解标准下拉框操作。 1、Select提供了三种选择某一项的方法 select.selectByIndex # 通过索引定位 selectByValue # 通过value值定位 selectByV
阅读全文
摘要:一、弹出框分类: 弹出框分为两种,一种基于原生JavaScript写出来的弹窗,另一种是自定义封装好的样式的弹出框,本文重点介绍原生JavaScript写出来的弹窗,另一种弹窗用click()基本就能搞定。 原生JavaScript写出来的弹窗又分为三种: alert confirm prompt
阅读全文
摘要:一、什么是单选框、复选框? 二、被测页面html源代码 CheckBoxRadioDemo.html 三、判断是否选中:isSelected() 有时单选框、复选框会有默认选中的情况,那么有必要我在操作单选框或者复选框的时候,先判断选项框是否为选中状态。使用element.isSelected()来
阅读全文
摘要:前言 在自动化测试中,我们经常会碰到编写脚本过程中操作某个元素的时候, 需要等待页面加载完成后,才能对元素操作,否则会报错,提示页面元素不存在异常,我们需要等待元素加载完成后,才能继续操作,而Selenium为我们提供了对应的等待方法,来判断元素是否存在。 下面将用一个例子,针对元素等待操作做逐一讲
阅读全文
摘要:一、前言 元素定位可以说是学自动化测试中必会技能之一,也可以说是通往自动化之路的开门钥匙。 就元素定位方法,除了我们常用并熟知的8种元素定位方法之外,还有一种定位方法可以说是一种特殊的存在,那就是JQuery定位,是常用8种定位之外的方法,相对于js定位,JQuery语法比较简洁一些,而且方便快捷。
阅读全文
摘要:写在前面 相信很多做web自动化测试的同学都深有体会,其本质也就是通过操作页面元素对象来模拟用户操作行为,那么首先我们先找到这些元素对象,然后才能进行一系列操作。 那么,我们要先告诉自动化工具或者说代码要操作那个元素,毕竟代码和工具是无法像人工一样识别页面上的元素的,那么如何让这些动作精准的作用到我
阅读全文
摘要:写在前面 本来这篇文章该几个月前写的,后来忙着忙着就给忘记了。ps:事多有时候反倒会耽误事。几个月前,记得群里一朋友说想用selenium去爬数据,关于爬数据,一般是模拟访问某些固定网站,将自己关注的信息进行爬取,然后再将爬出的数据进行处理。他的需求是将文章直接导入到富文本编辑器去发布,其实这也是爬
阅读全文
摘要:写在前面 我们刚开始做自动化测试,可能写的代码都是基于原生写的代码,看起来特别不美观,而且感觉特别生硬。 来看下面一段代码: 具体表现如下: driver对象在测试类中显示 定位元素的value值在测试类中显示 定位元素的方式在测试类中显示 线程方式硬等待sleep几秒 代码一报错,还要去测试类里面
阅读全文
摘要:关于自动化测试报告: 之前用过testNG自带的测试报告、优化过reportNG的测试报告、extentreport、Zreport(大飞总原创),这些是我之前都用过的,也是在去年雯姐和我说过Allure2这个报告不错,一直没时间,正巧最近有用到,接触下发现确实是个神器。 Allure(已经有all
阅读全文
摘要:前面讲了工程启动报错“selenium启动报错Unable to read VR Path Registry from C:\Users\clinva\AppData\Local\openvr\openvrpaths.vr”,升级了firefox浏览器到62后问题解决了,但是接下来启动程序有另外一个
阅读全文
摘要:1 硬性等待 2 智能等待 此方法有两个参数,timeOut是等待元素的超时时间,就是说过了这个时间如果元素还没加载出来就报错。By对象,这个是你元素的定位方式比如By.id(“login”); 这个方法会在给定timeOut去查找元素,如果在小于timeOut的时间内找到了元素,剩下的时间不在等待
阅读全文
摘要:import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamR...
阅读全文
摘要:数据驱动部分,是自动化测试常用部分,也是参数化设计的重要环节,前面分享了,mysql、yaml做数据源,那么再来分享下excel做数据驱动 思路: 先用POI读取excel。解析读取数据,返回list,返回Object[][]即可 工具类文件: 读取excel,返回map对象list集合 ReadE
阅读全文
摘要:上一篇我们介绍用如何用yaml结合testng做数据驱动,就又想来个数据库的参数化 备注:@DataProvider的返回值类型只能是Object[][]与Iterator<Object>[] 思路: 解析sql查询返回结果,然后把解析出来的list转换成Object[][]类型的数据,且结合在@D
阅读全文
摘要:testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本。在这以yaml为例: 备注:@DataProvider的返回值类型只能是Object[][]与Iterator<Object>[] application.ya
阅读全文
摘要:前言: 验证码问题对于每个ui自动化的同学而言,相信都是个蛋疼的问题,对于验证码的处理我个人不提倡破解,不要去想破解方法,这个验证码本来就是为了防止别人自动化登录的。如果你们公司的验证码很容易被你破解了,那么只能说你们公司验证码级别不高,去建议开发提高验证码级别了。 对于验证码,要么是让开发把验证码
阅读全文
摘要:前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求。css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁。这一篇css的定位方法,主要是对比上一篇的xpath来的,基本上xpath能完成的,css也可以做到。两篇对比学
阅读全文