Selenium自动化测试(java语言)
Selenium介绍
Selenium 1.0 包含 core、 IDE、 RC、 grid 四部分,
selenium 2.0 则是在两位大牛偶遇相互沟通决定把面向对象结构化( OOPP) 和便于编写代码的各自思想予以整合后形成的新工具,也就是我们所指的 Web Driver。
Core 是 selenium 的核心,在后期虽然被封装,但只是减少了可视性,它依旧是驱动selenium 的核心;
IDE 是一款 firefox 浏览器插件,主要用于新手或对编码还不熟悉的人员入门时使用, 这个插件允许在 firefox 中录制一段 web 操作代码,导出后在eclipse 中修改并运行, 但测试人员在项目实际使用中不推荐使用这个插件,因为它只会降低测试人员的编码能力;
Web Driver 是开展 web 页面测试的关键核心,也是目前主流测试工具之一。Selenium 可以结合 Junit 使用,既可以进行单元测试,也可以开展集成测试,既是代码测试工具,也是功能测试工具,下面我们就工具的使用一步一步的入门。
一、Java环境搭建步骤:
步骤一: 下载并安装JDK
步骤二: 配置java系统环境变量
步骤三: 验证java环境
为什么要配置系统环境变量:
配置 path 的系统环境变量,配置path的原因是让你可以在控制台编译、运行你的java程序而不必进入到java程序目录去运行,例如控制台命令:java -version,要执行此命令,控制台会先在当前目录找java.exe程序,找不到会去path变量中指定的路径去找此命令,如果没有找到就不会执行,java.exe是在java程序目录中的bin目录下,所以path才会配到java程序的bin目录;path可以说主要是为了方便,让你无论在哪个目录下都可以直接使用javac等命令,否则就只有到bin目录下执行javac和java命令了……
另外我们可以在运行里直接打命令notepad打开一个记事本程序就也是path变量的作用,如果你把path变量删掉,这个notepad命令也就不起用了,原来可以在运行里运行的命令也都无效了:
配置 classpath 的系统环境变量,classpath变量通常是新建的变量。在编译、运行java程序时会在它指定的目录下去找你所要用到的class,也是先在本目录下找,然后在指定目录下找,都找不到就会报错了;classpath是为了方便使用java类库,如果以后用到第三方类库的话,你就有2中选择,可以也为他们配calsspath,或者把它们直接复制到你自己的class所在目录下
配置 JAVA_HOME 的系统环境变量
打开我的电脑--属性--高级--环境变量 :
变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0
变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
变量名:Path 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
二、Selenium IDE安装使用步骤
步骤一: Selenium官网下载Firefox插件SeleniumIDE.xpi
步骤二: 插件拖入Firefox开始安装
步骤三: Firefox工具栏打开seleniumIDE进行脚本录制
步骤四: 录制脚本的回放与调试
步骤五: 以指定语言保存录制脚本
三、建立Selenium 自动化脚本的步骤:
步骤一: 建立java工程
步骤二: 向建立好的java工程添加 Selenium-server-standalone.jar包
步骤三: 建立浏览器驱动对象 WebDriver driver = new FirefoxDriver();
步骤四: 打开WEB页面 driver.get("http://www.baidu.com");
步骤五: 页面元素的操作 driver.findElement(By.linkText("登录")).click();
补充:Chrome和IE浏览器需要在第四步后设置浏览器驱动路径 System.setProperty(key,args);
如:System.setProperty("webdriver.firefox.bin","D:\\Program Files\\Mozilla Firefox\\firefox.exe");
向Java工程中添加jar包有多种方式:
1、新建一个java空工程,然后将我们下载好的selenium编程需要的jar包拷贝至工程下面,右键单击selenium-server-
standalone.jar>点击Build path>点击add to Build path添加进工程
2、右键java工程->Properties->Java Build Path->Libraries->Add External JARs…
3、右键java工程->Build Path,选择操作即可
四、元素定位与操作
1. 元素的定位
Selenium自动化,我们需要做的最基本的事情就是在页面找到元素并通过脚本程序去操作这个元素,实现模拟人工操作。
我们有多种定位元素的方式可以选择:
通过元素的ID定位元素: findElement(By.id(element));
通过元素的名称定位元素: findElement(By.name(element));
通过元素的html中的位置定位元素: findElement(By.xpath(element));
通过元素的标签名称定位元素: findElement(By.tagName(element));
通过元素的链接名称定位元素: findElement(By.linkText(element));
通过元素的类名定位元素: findElement(By.className(element));
通过元素的css定位元素: findElement(By.cssSelector(element));
通过元素的部分链接名称定位元素: findElement(By.partialLinkText(element));
2. 元素的操作
不同的元素我们进行不同的操作,按钮的点击、输入框的字符输入、或者是元素的内容获取,不同的元素我们操作的方式不一。
对ID为element的元素进行点击操作: driver.findElement(By.id(element)).click();
对ID为element的元素进行发送字符操作: driver.findElement(By.id(element)).sendKeys(“XXXXXX”);
这里只举用的最多且最简单的的两例元素的操作,其实我们还有许多的操作,可以去慢慢的探索脚本的实现方式,比如页面title的获取、浏览器标签的切换等等
可参考:
和我一起学 Selenium WebDriver(1)——入门篇 https://my.oschina.net/dyhunter/blog/94090
Selenium自动化测试(java语言)的更多相关文章
- 自动化测试Java一:Selenium入门
From: https://blog.csdn.net/u013258415/article/details/77750214 Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介 ...
- 《手把手教你》系列基础篇之(一)-java+ selenium自动化测试-环境搭建(上)(详细教程)
1.简介 jmeter系列的文章结束,本来想趁热打铁顺别将Jmeter和接口测试介绍一下,但是感觉Jmeter时间太长了怕大家吃腻了,还有一个原因就是许多小伙伴们或者童鞋们私信问宏哥什么时候可以有ja ...
- 《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
- 《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
- 《手把手教你》系列技巧篇(十六)-java+ selenium自动化测试-元素定位大法之By xpath下卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
- 《手把手教你》系列技巧篇(四十四)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)
1.简介 这一篇宏哥主要介绍webdriver在IE.Chrome和Firefox三个浏览器上处理不信任证书的情况,我们知道,有些网站打开是弹窗,SSL证书不可信任,但是你可以点击高级选项,继续打 ...
- 《手把手教你》系列技巧篇(五十四)-java+ selenium自动化测试-上传文件-中篇(详细教程)
1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...
- 《手把手教你》系列技巧篇(五十五)-java+ selenium自动化测试-上传文件-下篇(详细教程)
1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...
- 《手把手教你》系列基础篇(八十)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试-番外篇(详解教程)
1.简介 经过前边几篇知识点的介绍,今天宏哥就在实际测试中应用一下前边所学的依赖测试.这一篇主要介绍在TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用de ...
- Java+selenium自动化测试基础
Java+selenium maven配置 maven的配置,但还需要建立maven的本地库,修改apach-maven的setting.xml http://www.cnblogs.com/haoa ...
随机推荐
- Import MySQL Dumpfile, SQL Datafile Into My Database
How can I import a MySQL dumpfile into my database? I'm using CentOS Linux 5 server. My old hosting ...
- 想使用WM_CONCAT 函数进行多列转一行,但发现没有
查看数据库版本: SELECT * FROM v$version; 1 Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bi ...
- zoj1093 Monkey and Banana
写到现在,发现1025,1076之前写的都是同一种题型:关于DAG的最长路(最短路). 首先要建立模型,根据关系,确定点和点之间的关系,构成一个DAG,前面几道题每个点之间距离默认为1,这一道题不同点 ...
- C Traps and Pitfallss
第一章 词法“陷阱” 发送阿罡发公司阿发送个发送阿罡发公司阿发送个 第二章
- QtQml 应用程序的性能考虑与建议(来自小V的翻译)
QtQml 应用程序的性能考虑与建议 原文:csdn aidear_evo QtQml应用程序的性能考虑与建议 本文翻译自Qt官网文档:http://doc.qt.io/qt-5/qtquick-pe ...
- opensatck 使用devstack在 laptop上的 网络配置
http://docs.openstack.org/developer/devstack/guides/neutron.html Physical Network Setup In most case ...
- IE 创建条件样式
1.HTML 注释 <div id="header">Header Section</div> <!-- End Header Section Con ...
- 数据存储(三)--JSON数据处理
JSON是一种轻量级的数据交换格式,具有良好的可读和便于高速编写的特性,从而能够在不同平台间进行数据交换.JSON採用兼容性非常高的文本格式,同一时候也具备类似于C语言体系的行为.JSON能够将Jav ...
- 使用Vitamio打造自己的Android万能播放器(5)——在线播放(播放优酷视频)
前言 为了保证每周一篇的进度,又由于Vitamio新版本没有发布, 决定推迟本地播放的一些功能(截图.视频时间.尺寸等),跳过直接写在线播放部分的章节.从Vitamio的介绍可以看得出,其支持http ...
- Quartz.NET 2.0 作业调度框架使用
Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不 ...