用java+selenium啟動chrome瀏覽器時報錯Exception in thread "main" org.openqa.selenium.NoSuchSession__JAVA_STUDY

來源:互聯網
上載者:User

現在很多網頁內容都是動態產生的,動態網頁面資訊的提取可以使用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了。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.