2024年6月4日发(作者:)
(一) Selenium2.0 VS Selenium1.0
我们已经有了Selenium1.0为什么还需要Selenium2.0呢?
Selenium1.0不能处理一下事件:
1) 本机键盘和鼠标事件
2) 同源策略XSS/HTTP(S)
3) 弹出框,对话框(基本身份认证,自签名的证书和文件上传/下载)
Selenium2.0有简洁的API,WebDriver和WebElement对象,更好的抽象。且支持多
中操作系统,多语言,多浏览器。
同时Selenium2.0进行了架构的调整和升级:
Selenium2.0 = Selenium1.0 + WebDriver(也就是说Selenium2.0合并了这两个项目)
Selenium1.0可以使用任何编程语言,但是有个先决条件就是必须支持HTTP库。
Selenium1.0起初就是一个Javascript库,到后面引入了SeleniumRC。SeleniumRC作为
一个代理服务器并且发送操作命令给Selenium Core(javascript代码,且为SeleniumRC
的一部分)。SeleniumRC从测试程序接收指令并翻译,返回测试结果给测试程序。Selenium
Core在client API打开浏览器后就注入到浏览器中,然后Selenium Core接收测试程序的
指令,解释成selenese命令,在浏览器执行。
Selenium1.0作为第一个基于javascript开源的web测试框架,迅速的得到了其他浏览
器的支持。但是和任何其他大项目一样,Selenium1.0也不是完美的。正因为他完全是使用
javascript写的,这也给他带来了致命的缺陷。为了防止恶意的javascript,所有浏览器都加
强了对javascript的安全策略。这样势必导致了在一些特定场景无法使用Selenium1.0。作
为一个大项目,随着时间的日积月累,Selenium1.0的API变得越来也大,也越来也复杂,
导致了都不知道更好的使用它改善它。
WebDriver项目是由Simon Stewart提出的,它是一个轻便简洁的自动化测试框架。
WebDriver通过尝试不同的方法去解决Selenium1.0所面临的问题。不单单是使用
javascript,WebDriver会使用任何一种更合适的机制来操作浏览器。IE通过使用C++,FF
通过使用javascript in a XPCOM component
。
通过更灵活的机制去操控浏览器,那我们就能很好的绕过浏览器javascript的安全限制。
当这些技术还不够用时,我们可以调用系统设备操作,尤其是当你需要一些键盘和鼠标操作
时,通过这些技术,我们可以更好的模拟用户的真实浏览器操作。
当这两个框架被合并后,一个框架的缺陷被另一个框架所弥补。WebDriver对浏览器的
支持需要对应框架开发工程师做对应的开发;同样Selenium必须操作真实浏览器,但是
WebDriver可以HTML unit Driver来模拟浏览器,在内存中执行用例,更加的轻便。
Selenium1.0解决了自动化测试中的一些常见问题,WebDriver更好的解决了沙箱限制。
WebDriver不支持并行,但是Selenium Grid解决了这个问题。
(二) WebDriver
a) WebDirver小实例
WebDriver是一个用来进行复杂重复的web自动化测试的工具。意在提供一种比
Selenium1.0更简单易学,有利于维护的API。它没有和任何测试框架进行绑定,所以他可
以很好的在单元测试和main方法中调用。一旦创建好一个Selenium工程,你马上会发现
WebDriver和其他类库一样:它是完全独立的,你可以直接使用而不需要考虑其他配置,这
个Selenium RC是截然相反的。
下面我们就开始进入WebDriver的实际应用,首先大家下载好eclipse,还有从selenium
官方网站下载selenium2.0的jar包和chromedriver的驱动文件。构建整个工程如下模式:
现在我们开始写代码:
package demo;
import ;
import ver;
import ment;
import xDriver;
import edCondition;
import verWait;
public class Selenium2Example {
public static void main(String[] args) {
//
创建一个
WebDriver
实例
WebDriver driver= new FirefoxDriver();
//
访问
("");
//
另一种访问方法
// te().to("");
//
找到文本框
WebElement element= ement(("q"));
//
输入搜索关键字
ys("Selenium");
//
提交表单
WebDriver
会自动从表单中查找提交按钮并提交


发布评论