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语言)的更多相关文章

  1. 自动化测试Java一:Selenium入门

    From: https://blog.csdn.net/u013258415/article/details/77750214 Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介 ...

  2. 《手把手教你》系列基础篇之(一)-java+ selenium自动化测试-环境搭建(上)(详细教程)

    1.简介 jmeter系列的文章结束,本来想趁热打铁顺别将Jmeter和接口测试介绍一下,但是感觉Jmeter时间太长了怕大家吃腻了,还有一个原因就是许多小伙伴们或者童鞋们私信问宏哥什么时候可以有ja ...

  3. 《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. ...

  4. 《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. ...

  5. 《手把手教你》系列技巧篇(十六)-java+ selenium自动化测试-元素定位大法之By xpath下卷(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. ...

  6. 《手把手教你》系列技巧篇(四十四)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-下篇(详解教程)

    1.简介   这一篇宏哥主要介绍webdriver在IE.Chrome和Firefox三个浏览器上处理不信任证书的情况,我们知道,有些网站打开是弹窗,SSL证书不可信任,但是你可以点击高级选项,继续打 ...

  7. 《手把手教你》系列技巧篇(五十四)-java+ selenium自动化测试-上传文件-中篇(详细教程)

    1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...

  8. 《手把手教你》系列技巧篇(五十五)-java+ selenium自动化测试-上传文件-下篇(详细教程)

    1.简介 在实际工作中,我们进行web自动化的时候,文件上传是很常见的操作,例如上传用户头像,上传身份证信息等.所以宏哥打算按上传文件的分类对其进行一下讲解和分享. 2.为什么selenium没有提供 ...

  9. 《手把手教你》系列基础篇(八十)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试-番外篇(详解教程)

    1.简介 经过前边几篇知识点的介绍,今天宏哥就在实际测试中应用一下前边所学的依赖测试.这一篇主要介绍在TestNG中一个类中有多个测试方法的时候,多个测试方法的执行顺序或者依赖关系的问题.如果不用de ...

  10. Java+selenium自动化测试基础

    Java+selenium maven配置 maven的配置,但还需要建立maven的本地库,修改apach-maven的setting.xml http://www.cnblogs.com/haoa ...

随机推荐

  1. Mschart应用之曲线图表spline

    本文主要是Mschart应用之曲线图表spline,实现6个模拟数据的图表,其中数据源X轴为当前系统时间,Y轴是由随机函数产生的不同范围的随机数. 首先是自定义一个数据表,然后产生的数据添加到该数据表 ...

  2. C# 数组的应用

    //数组的应用: //(一).冒泡排序. //1.冒泡排序是用双层循环解决.外层循环的是趟数,里层循环的是次数. //2.趟数=n-1:次数=n-趟数. //3.里层循环使用if比较相临的两个数的大小 ...

  3. Unix下C程序内存泄露检测工具:valgrind的安装使用

    Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Goo ...

  4. 关于sql 外键的讨论。

    外键是否采用看业务应用场景,以及开发成本的,大致列下什么时候适合,什么时候不适合使用: 1. 互联网行业应用不推荐使用外键: 用户量大,并发度高,为此数据库服务器很容易成为性能瓶颈,尤其受IO能力限制 ...

  5. map循环

    Map<String,  String> maps = new HashMap<String, String>(); maps.put("_id", &qu ...

  6. 解决Button在IE6、7下的自适应宽度问题

    很早就遇到过这么个小问题,但由于其并未影响到实际作用和美观就没有正面解决它,现在,我们来试着解决它. 写一个Button,有两种方式:其一,直接button标签:其二,input type=”butt ...

  7. Manifest merger failed : uses-sdk:minSdkVersion 9 cannot be smaller than version 10 declared in library

    Error:Execution failed for task ':app:processDebugManifest'. > Manifest merger failed : uses-sdk: ...

  8. Handle 消息机制

    android中Handle类的主要作用: 1.在新启动的线程中发送给消息 2.在主线程获取.处理消息 为什么要用Handle这样的一个机制: 因为在Android系统中UI操作并不是线程安全的,如果 ...

  9. 全局键盘钩子(WH_KEYBOARD)

    为了显示效果,在钩子的DLL中我们会获取挂钩函数的窗体句柄,这里的主程序窗体名为"TestMain",通过FindWindow查找. KeyBoardHook.dll代码 libr ...

  10. httpClient download file(爬虫)

    package com.opensource.httpclient.bfs; import java.io.DataOutputStream; import java.io.File; import ...