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的執(zhí)行等;由于不進行css及GUI渲染,所以運行效率上會比真實瀏覽器要快很多,主要用在功能性測試上面。
htmlunit是java實現的類瀏覽器程序,包含在selenium server中,無需驅動,直接實例化即可;其js的解析引擎是Rhino
PhantomJS是第三方的一個獨立類瀏覽器應用,可以支持html、js、css等執(zhí)行;其驅動是Ghost driver在1.9.3版本之后已經打包進了主程序中,因此只要下載一個主程序即可;其js的解析引擎是chrome 的V8。
driver類型優(yōu)點缺點應用
真實瀏覽器driver真實模擬用戶行為效率、穩(wěn)定性低兼容性測試
HtmlUnit速度快js引擎不是主流的瀏覽器支持的包含少量js的頁面測試
PhantomJS速度中等、模擬行為接近真實不能模擬不同/特定瀏覽器的行為非GUI的功能性測試
PS:除上述的幾種真實瀏覽器driver中,也可以通過不同的手段來取消瀏覽器的css解析、界面渲染等目的;這樣既可以保證瀏覽器的真實兼容性、也可以提高執(zhí)行效率問題;使用的手段有:autoit、pyvirtualdisplay、瀏覽器設置等。