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. js callback函数

    A callback is a function that is passed as an argument to another function and is executed after its ...

  2. 几个Python oj的网站

    http://www.rqnoj.cn/ http://www.pythontip.com/

  3. ASP.NET版本的Kindeditor插件的使用

    1.先从官网中现在最新版本的Kindeditor,官网地址:http://www.kindsoft.net/ 下载之后的目录结构如下:

  4. AJAX+cURL+SimpleXMLElement处理数据

    curl_xml.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  5. AlarmManager与PendingIntent

    1.AlarmManager的作用与PendingIntent的关系 顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,在特定的时刻为我们广播一个指定的Intent.简单的说就是 ...

  6. leetcode 算法刷题(一)

    今天开始刷Leetcode上面的算法题.我会更新我刷题过程中提交的代码(成功和不成功的都有)和比较好的解法 第二题 Add Two Numbers 题目的意思:输入两个链表,这两个链表都是倒序的数字, ...

  7. 最长增长子序列 DP

    #include<iostream> using namespace std; #define INF 0x7fffffff #define N 10000 // O(n^2) int l ...

  8. 《UNIX网络编程》TCP客户端服务器例子

    最近在看<UNIX网络编程>(简称unp)和<Linux程序设计>,对于unp中第一个获取服务器时间的例子,实践起来总是有点头痛的,因为作者将声明全部包含在了unp.h里,导致 ...

  9. [linux]segvcatch简单使用

    https://code.google.com/p/segvcatch/ This is a crossplatform C++ library designed to convert a hardw ...

  10. python---连接MySQL第二页

    用python向MySQL插入值.并取出被插入行的主键. #!/usr/bin/python #!coding:utf-8 import mysql.connector from mysql.conn ...