在前端桌面測試技術中,Selenium與WebDriver是一對常見的組合,尤其是Selenium提供了遠程Grid集群機制可以很方便的執行測試用例。WebDriver目前由各大瀏覽器廠商實現,相較于Chrome和Firefox,IE Driver的搭建過程略顯繁瑣,也比較容易出錯。下面介紹一下IE Driver的完整搭建過程,并提供一些問題的解決方案,供大家參考。
本例以IE 11作為范本,其他版本的搭建過程可能略有差異,不建議使用IE 6及以下版本。
搭建IE測試環境
第一步:確保IE 11在Windows上已正確安裝,如果你使用的Windows 7,請確保已安裝Service Pack 1。
第二步:安裝IE WebDriver Tool (Internet Explorer 11)。
第三步:在“設置-安全”中,將所有欄目的保護模式設為統一的值(推薦激活),如圖所示。
第四步:針對IE 11,我們需要在目標機器上設置一些注冊表的值,以便IE Driver能夠管理它所創建的IE實例。
對于32位的Windows,請找到以下鍵:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/Main/FeatureControl/FEATURE_BFCACHE
對于64位的Windows,請找到以下鍵:HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Internet Explorer/Main/FeatureControl/FEATURE_BFCACHE
注意FEATURE_BFCACHE鍵有可能是不存在的,如果不存在就新建一個。
最后,在FEATURE_BFCACHE鍵內部,新建一個DWord值,名稱為iexplore.exe,值為0。
如果大家嫌麻煩的話,這里分別提供32位和64位的注冊表修改腳本文件,下載下來直接雙擊就搞定了。
http://download.csdn.net/detail/mybreeze77/9746869
至此,IE 11的測試環境就搭建好了,如果是本地測試的話,應該是足夠了。但是如果是遠程測試的話(比如通過Grid),還會遇到一些坑,下面做一些簡單的總結。
1. 瀏覽器的頁面縮放級別(zoom level)必須設置為100%,這樣原生的鼠標事件才能指向正確的坐標。
2. 遠程桌面連接的情況下,如果會話處于非激活狀態(如鎖定),截圖功能就會失效(黑屏)。要防止系統自動鎖定,可以采取以下措施:
關閉屏保。電源選項中如果有諸如“長時間無操作自動休眠”子類的設置,請關閉。當然,這只能解決一部分問題,一旦我們關閉遠程連接,會話還是會處于關閉狀態,并顯示登錄頁面。要解決這個問題,我們需要使用tscon工具來幫助我們以一種巧妙的方式退出遠程連接,而不是直接關閉。tscon工具能夠將控制權交還給遠程機器的本地會話,跳過登錄頁面,這時所有在遠程機器上執行的程序依然可以照常工作,當然也包括了我們的前端測試。
當需要退出遠程桌面時,在遠程機器上執行以下代碼段即可(需要管理員權限)。
%windir%/System32/tscon.exe RDP-Tcp#NNN /dest:consoleRDP-Tcp#NNN是當前遠程桌面會話的ID,例如RDP-Tcp#0。這個ID可以通過任務管理器,用戶選項卡下的會話一欄中找到。
執行代碼后,我們會看到“遠程桌面會話已終止”的提示,這說明遠程桌面客戶端已關閉,但不影響那些遠程程序的運行。
同樣的,如果你嫌麻煩,可以直接在遠程機器上創建一個BAT文件,內容如下:
for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do ( %windir%/System32/tscon.exe %%s /dest:console)之后每次只需要以管理員身份運行這個文件就可以退出會話了。
參考
https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriverhttp://heliumhq.com/docs/internet_explorerhttps://support.smartbear.com/viewarticle/86476/
新聞熱點
疑難解答