selenium操作chrome瀏覽器需要有ChromeDriver驅動來協助。
什么是ChromeDriver?
ChromeDriver是Chromium team開發維護的,它是實現WebDriver有線協議的一個單獨的服務。ChromeDriver通過chrome的自動代理框架控制瀏覽器,ChromeDriver只與12.0.712.0以上版本的chrome瀏覽器兼容。
那么要想selenium成功的操作chrome瀏覽器需要經歷如下步驟:
1、下載ChromeDriver驅動包(下載地址:http://chromedriver.storage.googleapis.com/index.html?path=2.7/
注意閱讀note.txt下載與自己所使用瀏覽器一致版本的驅動包。
2、指定ChromeDriver所在位置,可以通過兩種方法指定:
1)通過配置ChromeDriver.exe位置到path環境變量實現。
2)通過webdriver.chrome.driver.系統屬性實現。實現代碼如下:
System.setProperty("webdriver.chrome.driver", "C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\Application\chromedriver.exe");
3、后需要做的是創建一個新的ChromeDriver的實例。
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com/");
至此我們可以通過chrome瀏覽器來執行我們的自動化代碼了。
完整實例代碼如下:
public static void main(String[] args) {
// TODO Auto-generated method stub
//設置訪問ChromeDriver的路徑
System.setProperty("webdriver.chrome.driver", "C:\Documents and Settings\Administrator\LocalSettings\Application Data\Google\Chrome\Application\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com/");
}
btw:
chrome瀏覽器在各個系統默認位置:
OS Expected Location of Chrome
Linux /usr/bin/google-chrome1
Mac /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Windows XP %HOMEPATH%Local SettingsApplication DataGoogleChromeApplicationchrome.exe
Windows Vista C:Users\%USERNAME%AppDataLocalGoogleChromeApplicationchrome.exe
執行以上代碼你會發現ChromeDriver僅是在創建是啟動,調用quit時關閉瀏覽器,ChromeDriver是輕量級的服務若在一個比較大的測試套件中頻繁的啟動關閉,會增加一個比較明顯的延時導致瀏覽器進程不被關閉的情況發生,為了避免這一狀況我們可以通過ChromeDriverService來控制ChromeDriver進程的生死,達到用完關閉的效果避免進程占用情況出現(Running the server in a child process)。
具體實現如下:
ChromeDriverService service = new ChromeDriverService.Builder() .usingChromeDriverExecutable(new File("E:\Selenium WebDriver\chromedriver_win_23.0.1240.0\chromedriver.exe")).usingAnyFreePort().build();
service.start();
driver = new ChromeDriver();
driver.get("http://www.baidu.com");
driver.quit();
// 關閉 ChromeDriver 接口
service.stop();