1. 程式人生 > >selenium(webdriver)學習筆記1--ChromeDriver

selenium(webdriver)學習筆記1--ChromeDriver

用webdriver啟動firefox時很簡單,以下程式碼就可以。

WebDriver driver = new FirefoxDriver();
driver.get("http://www.baidu.com");
driver.close();

但是啟動Google Chrome瀏覽器,就比較複雜了。

如果還是用以下程式碼,會報錯。

WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com");
driver.close();

錯誤資訊:

Exception in thread "main"
java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html at com
.google.common.base.Preconditions.checkState(Preconditions.java:197) at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:110) at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:32) at org.openqa.selenium.chrome.ChromeDriverService
$Builder.findDefaultExecutable(ChromeDriverService.java:118) at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:291) at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:82) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:117) at webdrivers.UseChromeDriver.main(UseChromeDriver.java:9)

解決辦法:下載chromedriver

下載地址: https://sites.google.com/a/chromium.org/chromedriver/downloads
請檢視自己Google Chrome的版本下載對應的chromedriver.
對了,還有一點,下圖是某一個版本的所有chromedriver,沒有win64的,我試驗過了
win64的作業系統用win32的就行。
chromedriver
下載好之後解壓,得到chromedriver,程式碼變更如下:

System.setProperty("webdriver.chrome.driver", "D:/drivers/chromedriver_win32-2.14/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.baidu.com");
driver.close();

原因:

ChromeDriver 是一個standalone server,是跟the Chromium team 合作開發的。
它由三部分組成,chrome瀏覽器,Selenium project (“the driver”) 提供的language bindings(這個我也不知道是啥,我猜是selenium-chrome-driver-*.jar),還有就是可執行的chromedriver,就是之前程式裡缺少的。這個可執行的chromedriver是另外兩個的橋樑。

server要求chrome瀏覽器安裝在預設路徑

OS 安裝路徑
Linux /usr/bin/google-chrome
Mac /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
windows7 C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
Windows XP %HOMEPATH%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe

對於linux系統,/usr/bin/google-chrome是真正安裝路徑的symlink就行。