selenium学习笔记——selenium WebDriver实现原理及安装配置(基于java)

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学习笔记
上一篇selenium学习笔记——selenium IDE脚本和命令
下一篇selenium学习笔记——单元测试框架——JUnit
想对作者说点什么? 我来说一句

IEDriverServer

2018年03月24日 2.94MB 下载

没有更多推荐了,返回首页

关闭
关闭