selenium WebDriver实现原理及安装配置(基于java)

原创 2018年04月16日 17:19:31

WebDriver的实现原理

        webDriver 余selenium 1的JavaScript注入实现不同,它直接利用浏览器的内部接口来操作浏览器。对于不同平台的不同浏览器,必须依赖浏览器内部的Native Component来实现吧WebDriver API调用转化为浏览器内部接口的调用。

        webdriver是按照server – client的经典设计模式设计的。server端就是remote server,可以是任意的浏览器。当我们的脚本启动浏览器后,该浏览器就是remote server,它的职责就是等待client发送请求并做出相应;client端简单说来就是我们的测试代码,我们测试代码中的一些行为,比如打开浏览器,转跳到特定的url等操作是以http请求的方式发送给被 测试浏览器,也就是remote server;remote server接受请求,并执行相应操作,并在response中返回执行状态、返回值等信息。

        selenium 1采用JavaScript的合成事件来处理页面元素的操作,比如要单击某个页面元素,要先使用JavaScript定位到这个元素,然后触发单击事件。而WebDriver使用的是系统的内部接口或函数,首先要找到这个元素的坐标位置,并在这个坐标点触发一个鼠标左键的单击操作。因此,WebDriver能更好地模拟真实的环境,仅能测试那些可见的页面元素。而某些隐藏的页面元素则可以使用selenium 1进行操作,WebDriver无法实现。


WebDriver的安装配置(基于Java)

具体配置步骤如下:

1、安装JDK,配置JAVA环境变量。

2、下载安装Eclipse安装文件,并完成安装。(此步骤不详细描述)

3、访问selenium的官网下载地址https://www.seleniumhq.org/download/,下载java安装包,下载后把zip文件解压缩到本地磁盘。(官网貌似要翻墙才能下载,提供一个下载地址http://selenium-release.storage.googleapis.com/index.html)


4、解压后文件夹里内容如下


5、启动eclipse,配置webDriver。

(1)、创建一个新的工程,命名如:SeleniumDemo。

(2)、在新建的src目录上单击右键,在弹出的快捷菜单中,选择"New Package"。

(3)、在弹出的页面中,输入package的名字,如“cn.om”,单击“Finish”按钮成功。

(4)、在当前工程下,创建一个名为“FirstWebDriverDemo”的测试类。

(5)、在当前工程名称上,单击鼠标右键,在弹出的快捷菜单中选择“Properties”命令,如下图所示。


(6)、单击“Java Build Path”选项后,选择“Libraries”标签栏,在点击“Add External JARs”按钮,如下图所示。

(7)、在弹出的文件浏览框中,打开解压后的selenium文件夹,选择两个JAR文件后,单击“打开”,如下图所示。


(8)、在工程属性的“Libraries”标签栏可以看到新增了两个JAR文件。


(9)、再次点击“Add External JARs”,将文件夹中libs目录下的所有文件,添加到工程中。

(10)、单击“OK”,则完成JAR文件的全部导入,完成了Eclipse中WebDriver配置步骤。可以开始进行selenium自动化测试脚本的编写。


第一个WebDriver脚本——验证配置是否正确

测试用例步骤:

1、在Firefox中打开百度首页。

2、在搜索输入框中输入“selenium”

3、单击“百度一下”按钮。

4、页面显示搜索结果。

具体代码如下:

package cn.om;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.By.ByLinkText;
import org.openqa.selenium.firefox.FirefoxDriver;

public class FirstWebDriverDemo {
	public static void main(String[] args){
		WebDriver driver;
		String baseURL;
		
		/**
		 * webDriver在调用Friefox浏览器时,是使用安装时的默认文件路径,如果使用量自定义的安装路径,
		 * 则可能导致程序无法找到firefox.exe导致报错,因此需要执行以下代码,设置firefox的路径。
		 */
		System.setProperty("webdriver.firefox.bin","E:\\Mozilla Firefox\\firefox.exe");
		
		driver=new FirefoxDriver();
		baseURL="https://www.baidu.com/";
		
		//打开百度首页
		driver.get(baseURL);
		
		//在搜索框中输入selenium
		driver.findElement(By.id("kw")).sendKeys("selenium");
		
		//单击“搜索”按钮
		driver.findElement(By.id("su")).click();
	}
}

常见报错:

1、Exception in thread "main" org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH. Make sure firefox is installed...

        该问题是由于Firefox在安装时是有默认路径的,webDriver默认取默认路径,可是如果安装的时候使用自定义路径,那就无法找到firefox.exe来启动执行此测试脚本Firefox浏览器。因此在执行脚本时会报该错误。

        解决方法:

        在driver=new FirefoxDriver();前添加以下代码,指定firefox的路径。其中“E:\\Mozilla Firefox\\firefox.exe”就是代表firefox所在的路径。不同的机器路径要进行修改。

        System.setProperty("webdriver.firefox.bin","E:\\Mozilla Firefox\\firefox.exe");

2、org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms

        该问题是因为selenium的版本与firefox不兼容。

        解决方法:

        选择能兼容的版本使用。各firefox版本下载地址:http://ftp.mozilla.org/pub/firefox/releases/ 。各selenium jar包下载地址:http://selenium-release.storage.googleapis.com/index.html

        在selenium下载页面 http://www.seleniumhq.org/download/ (需FQ) 各个版本的changelog中,会记录支持的firefox版本。但由于要FQ,比较麻烦,因此可以参考我选择的版本。selenium  v2.53.1======Firefox47.0.1


Selenium Webdriver基于Java学习(二)--Navigate

如何使用Selenium Webdriver来实现平时对浏览器的前进、回退、刷新的一些操作,navigate是个好助手。...
  • woiangaoiowe
  • woiangaoiowe
  • 2016-12-23 09:00:37
  • 1392

1.搭建Java+Selenium+WebDriver测试环境

1.浏览器:Firefox  40.0 ,在浏览器 的附件组件 搜索并安装插件 Firebug 、FirePath 辅助测试。   Firebug 可以用来查看页面元素对应的HTML代码。   ...
  • u011818148
  • u011818148
  • 2016-07-01 13:48:10
  • 1217

selenium WebDriver原理介绍

  • 2015年02月08日 22:11
  • 10KB
  • 下载

Selenium WebDriver java 简单实例

selenium webdriver java
  • a542551042
  • a542551042
  • 2015-05-20 16:22:33
  • 10586

WebDriver Selenium eclipse环境搭建

WebDriver在eclipse环境下的搭建
  • xinyuehuixin
  • xinyuehuixin
  • 2017-04-14 10:36:18
  • 2484

web自动化测试selenium+webdriver安装及环境详细配置

  • 2015年09月08日 14:13
  • 37.05MB
  • 下载

selenium(webdriver)--Microsoft Edge browser

微软在新的Windows10系统上引进了新的浏览器Microsoft Edge browser。 为了能在Edge上实现自动化,微软开发了Microsoft WebDriver。 就跟chrome...
  • qiyueqinglian
  • qiyueqinglian
  • 2015-10-23 15:00:41
  • 5192

python Selenium安装、启动设置、基本操作

安装使用: 1.安装active-python 从这里下载PC已经安装python版本相同的版本http://www.activestate.com/activepython/downloads 按默...
  • pegsa
  • pegsa
  • 2015-09-11 22:17:48
  • 2545

用selenium的webdriver下载文件(基于python,firefox和chrome)

http://blog.csdn.net/huilan_same/article/details/52789954 今天谈谈文件下载吧,很多人不会处理弹出的文件下载框,其实跟上传类似,可以用...
  • cyjs1988
  • cyjs1988
  • 2017-07-11 16:59:53
  • 2302
收藏助手
不良信息举报
您举报文章:selenium WebDriver实现原理及安装配置(基于java)
举报原因:
原因补充:

(最多只允许输入30个字)