selenium官方加上第三方宣布支持的驱动有很多种;除了PC端的浏览器之外,还支持iphone、android的driver;大概记录一下selenium支持的各种driver的用途与说明。
selenium可支持的PC浏览器驱动包括:
FF driver【包含在各自语言的客户端里】
safari driver【包含在selenium server中】
ie driver
chrome driver 【第三方】
opera driver【第三方】
selenium可支持的伪浏览器驱动:
PhantomJS Driver【第三方】
HtmlUnit Driver【包含在selenium server中】
selenium可支持的移动端驱动:
Windows Phone driver 【第三方】
Selendroid -Selenium for Android【第三方】
ios-driver 【第三方】
Appium 支持iphone、ipad、android、FirefoxOS【第三方】
上述的所有驱动不仅可以直接通过各自语言客户端来调用,还是注册到selenium grid中进行分布式的远程调用。
因为移动端的driver都没有尝试过,所以就不做说明。PC端的driver都是基于浏览器的,主要分为2种类型:
一种是真实的浏览器driver
比如:safari、ff都是以插件形式驱动浏览器本身的;ie、chrome都是通过二进制文件来驱动浏览器本身的;
这些driver都是直接启动并通过调用浏览器的底层接口来驱动浏览器的,因此具有最真实的用户场景模拟,主要用于进行web的兼容性测试使用。
一种是伪浏览器driver
selenium支持的伪浏览器包括htmlunit、PhantomJS;他们都不是真正的在浏览器、都没有GUI,而是具有支持html、js等解析能力的类浏览器程序;这些程序不会渲染出网页的显示内容,但是支持页面元素的查找、JS的执行等;由于不进行css及GUI渲染,所以运行效率上会比真实浏览器要快很多,主要用在功能性测试上面。
htmlunit是java实现的类浏览器程序,包含在selenium server中,无需驱动,直接实例化即可;其js的解析引擎是Rhino
PhantomJS是第三方的一个独立类浏览器应用,可以支持html、js、css等执行;其驱动是Ghost driver在1.9.3版本之后已经打包进了主程序中,因此只要下载一个主程序即可;其js的解析引擎是chrome 的V8。
driver类型 | 优点 | 缺点 | 应用 |
真实浏览器driver | 真实模拟用户行为 | 效率、稳定性低 | 兼容性测试 |
HtmlUnit | 速度快 | js引擎不是主流的浏览器支持的 | 包含少量js的页面测试 |
PhantomJS | 速度中等、模拟行为接近真实 | 不能模拟不同/特定浏览器的行为 | 非GUI的功能性测试 |
PS:除上述的几种真实浏览器driver中,也可以通过不同的手段来取消浏览器的css解析、界面渲染等目的;这样既可以保证浏览器的真实兼容性、也可以提高执行效率问题;使用的手段有:autoit、pyvirtualdisplay、浏览器设置等。
几种PC端driver的效率比较:
- from selenium import webdriver
- import time
- drivers = ['HtmlUnit', 'PhantomJS', 'Chrome', 'FF', 'IE']
- dervers_time = {
- 'HtmlUnit' : 0,
- 'PhantomJS' : 0,
- 'Chrome' : 0,
- 'FF' : 0,
- 'IE' : 0,
- }
- times = 50
- def run_with_Chrome():
- common_step(webdriver.Chrome())
- def run_with_FF():
- common_step(webdriver.Firefox())
- def run_with_IE():
- common_step(webdriver.Ie())
- def run_with_PhantomJS():
- common_step(webdriver.PhantomJS(executable_path=r'C:\Python27\Scripts\phantomjs.exe'))
- def run_with_HtmlUnit():
- driver = webdriver.Remote("http://localhost:4444/wd/hub",
- desired_capabilities=webdriver.DesiredCapabilities.HTMLUNIT)
- common_step(driver)
- def common_step(driver):
- driver.get('http://www.baidu.com')
- ele = driver.find_element_by_id('su')
- print ele.get_attribute('value')
- driver.quit()
- for i in range(times):
- print '=============Times %s============' % i
- for driver in drivers:
- start = time.time()
- print start
- eval('run_with_%s()'%driver)
- end = time.time()
- print end
- elapse_time = end-start
- dervers_time[driver] += elapse_time
- print 'elapse for %s:%s' % (driver, elapse_time)
- for k,v in dervers_time.items():
- print 'avg elapse for %s in %s times:%s' % (k, times, v/times)
得出的结果:
最快的依次是htmlunit、PhantomJS、chrome、ie、ff
http://blog.csdn.net/five3/article/details/19085303
相关推荐
Selenium WebDriver 包含三个主要组件:测试代码(Test Code)、WebDriver API 和 浏览器驱动(Browser Driver)。测试代码编写测试脚本,调用WebDriver API来发送命令,浏览器驱动接收到这些命令后,解析并转发给...
这两个驱动程序是Selenium与浏览器通信的关键,它们实现了WebDriver协议,使得Selenium能够控制浏览器进行各种操作,如打开网页、填写表单、点击元素等。 Selenium IDE是一个记录和回放工具,用于创建和调试自动化...
assertTrue(driver.getTitle().toLowerCase().startsWith("selenium webdriver")); driver.quit(); ``` 这个例子中,首先导航到example.com,找到搜索框并输入文本"Selenium WebDriver",然后提交表单,最后验证页面...
Selenium WebDriver是一款强大的自动化测试工具,它允许程序员模拟真实用户在浏览器上的操作,进行Web应用程序的功能测试和验收测试。在Java环境下,Selenium WebDriver通常需要引入相应的jar包才能正常工作。...
模数介绍rModulo de introduccion a SeleniumWebDriver_driver_驱动_下载
Selenium Core是一组JavaScript函数,通过这些函数可以在浏览器中执行各种操作。 - **Selenium 2 (WebDriver)**:随着技术的进步,WebDriver成为了主流。WebDriver更直接地控制浏览器,不再依赖于Selenium Server,...
Selenium WebDriver 3.14.0 本来需要.net45 我改为.net2.0 希望喜欢的人需要。 dll 反编译,嵌入程序内。无需调用那个讨厌的dll。 绝对不骗人,骗人是小狗。架构复杂修改麻烦,各位体谅
在专业术语方面,Selenium WebDriver中的“Driver”可以理解为浏览器的驱动程序,它负责接收WebDriver API的命令,并将其转换成特定浏览器可以执行的动作。不同的浏览器,如Chrome、Firefox、IE等,都有自己的驱动...
Selenium WebDriver is an open source automation tool implemented through a browser-specific driver, which sends commands to a browser and retrieves results. The latest version of Selenium 3 brings ...
Selenium WebDriver 是一款强大的自动化测试工具,用于模拟真实用户在浏览器上的交互行为。其工作原理主要涉及自动化测试代码、浏览器驱动和浏览器这三个关键组件。我们可以将这个过程类比为出租车服务,其中工程师...
自动化测试:Selenium webdriver学习笔记 C#版 在本篇笔记中,我们将讨论 Selenium webdriver 的自动化测试中的对象定位方法。对象定位是自动化测试中非常重要的一步骤,它决定了我们的测试脚本是否能够正确地找到...
**Selenium WebDriver** 是一个用于Web应用程序测试的工具,它允许程序员通过编程方式控制浏览器执行各种操作,如点击、输入、导航等,从而实现自动化测试。Selenium支持多种浏览器,其中包括Chrome。 **...
标题 "连接Jest tests至Selenium WebDriver" 描述了如何将流行的JavaScript测试框架Jest与自动化Web浏览器工具Selenium WebDriver集成。在JavaScript开发中,测试是确保代码质量和稳定性的重要环节,而Jest以其高效...
Selenium WebDriver的强大之处在于其灵活性和可扩展性,可以应对各种网页测试需求。 总之,"Test webpage Selenium WebDriver"是一个涵盖自动化测试基础、Selenium WebDriver使用方法以及实际案例的话题,对于任何...
Selenium WebDriver是一个强大的开源工具,专门用于Web应用程序的自动化测试。这个" Selenium webdriver jar 包",版本3.11.0,是Selenium库的一个关键组成部分,它允许程序员通过编写代码来控制浏览器,实现对网页...
### Selenium WebDriver 学习笔记知识点详解 #### 一、元素定位 Selenium WebDriver 提供了丰富的API用于元素定位,常见的定位策略包括: - **ID**:`driver.findElement(By.id("elementId"))` - **Name**:`driver...
1. **Selenium介绍**:解释了Selenium WebDriver的作用和重要性,以及它如何与浏览器驱动程序(如Chrome Driver和IE Driver)配合工作,以控制浏览器进行自动化测试。 2. **准备工作**:提醒读者需要具备Python的...
其中 Selenium Core 是被 Selenium Server 嵌入到浏览器页面中的,Selenium Core 内部是一堆 JavaScript 函数构成,通过调用这些函数来实现对浏览器的各种操作。 Selenium 的第二个阶段是 Selenium2,Selenium2 ...