現在很多網頁內容都是動態產生的,動態網頁面資訊的提取可以使用selenium。提取動態網頁面資訊的
其中一種方法就是啟動瀏覽器執行js代碼,那麼第一步就是要先啟動瀏覽器。
下面上代碼:
import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;public class ChromeTest{public static void main(String[] args) { System.setProperty("webdriver.chrome.driver","D:\\ChromeDriver\\chromedriver_win32\\chromedriver.exe"); //建立一個WebDriver 的對象,但是new 的是chrome的驅動 WebDriver driver =new ChromeDriver(); //開啟指定的網站 driver.get("http://www.baidu.com"); System.out.println(driver.getTitle()); /** * dr.quit()和dr.close()都可以退出瀏覽器,簡單的說一下兩者的區別:第一個close, * 如果開啟了多個頁面是關不乾淨的,它只關閉當前的一個頁面。第二個quit, * 是退出了所有Webdriver所有的視窗,退的非常乾淨,所以推薦使用quit最為一個case退出的方法。 */ driver.quit();//退出瀏覽器}}運行結果如下圖:
以上結果沒有輸出“百度一下,你就知道”,因此出現錯誤。此錯誤讓我糾結了很長時間,最終終於解決。
大家仔細看的話,可以看到上圖中所報出的一個warning:The server did not provide any stacktrace information
其實,在這裡代碼是沒有錯的,造成錯誤的原因是我用的chromedriver版本與chrome瀏覽器的版本不對應。
兩者之間的映射關係可參照這位老兄的部落格:http://blog.csdn.net/huilan_same/article/details/51896672
然後我下載了一款對應我chrome瀏覽器版本的chromedriver,再次運行代碼結果如下:
這樣就OK了。