2023年6月21日发(作者:)

selenium webdriver的各种driver

selenium官方加上第三方宣布支持的驱动有很多种;除了PC端的浏览器之外,还支持iphone、android的driver;大概记录一下selenium支持的各种driver的用途与说明。

selenium可支持的PC浏览器驱动包括:

safari driver【包含在selenium server中】

ie driver

chrome 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的效率比较:

[python] view plaincopy

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(())

common_step(x())

def

def

run_with_FF():

run_with_IE():

common_step(()) def run_with_PhantomJS():

common_step(mJS(executable_path=r‟C:‟))

def run_with_HtmlUnit(): driver = (“localhost:4444/wd/hub”,

desired_capabilities=IT) common_step(driver)

def common_step(driver): („‟) ele =

_element_by_id(„su‟) print _attribute(„value‟) () for i

in range(times): print „=============Times %s============„ % i for driver

in drivers: start = () print start

eval(„run_with_%s()‟%driver) end = () print end

elapse_time = end-start dervers_time[driver] += elapse_time print „elapse

for %s:%s‟ % (driver, elapse_time) for k,v in dervers_(): print „avg

elapse for %s in %s times:%s‟ % (k, times, v/times)得出的结果:

最快的依次是htmlunit、PhantomJS、chrome、ie、ff

但抛除伪浏览器之外,真实浏览器中chrome感觉是最快的,

有兴趣朋友可以了解更多java教程 /java/

2023年6月21日发(作者:)

selenium webdriver的各种driver

selenium官方加上第三方宣布支持的驱动有很多种;除了PC端的浏览器之外,还支持iphone、android的driver;大概记录一下selenium支持的各种driver的用途与说明。

selenium可支持的PC浏览器驱动包括:

safari driver【包含在selenium server中】

ie driver

chrome 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的效率比较:

[python] view plaincopy

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(())

common_step(x())

def

def

run_with_FF():

run_with_IE():

common_step(()) def run_with_PhantomJS():

common_step(mJS(executable_path=r‟C:‟))

def run_with_HtmlUnit(): driver = (“localhost:4444/wd/hub”,

desired_capabilities=IT) common_step(driver)

def common_step(driver): („‟) ele =

_element_by_id(„su‟) print _attribute(„value‟) () for i

in range(times): print „=============Times %s============„ % i for driver

in drivers: start = () print start

eval(„run_with_%s()‟%driver) end = () print end

elapse_time = end-start dervers_time[driver] += elapse_time print „elapse

for %s:%s‟ % (driver, elapse_time) for k,v in dervers_(): print „avg

elapse for %s in %s times:%s‟ % (k, times, v/times)得出的结果:

最快的依次是htmlunit、PhantomJS、chrome、ie、ff

但抛除伪浏览器之外,真实浏览器中chrome感觉是最快的,

有兴趣朋友可以了解更多java教程 /java/