用java+selenium启动chrome浏览器时报错Exception in thread "main" org.openqa.selenium.NoSuchSession

现在很多网页内容都是动态生成的,动态页面信息的提取可以使用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();//退出浏览器
	}
}
运行结果如下图:

用java+selenium启动chrome浏览器时报错Exception in thread

以上结果没有输出“百度一下,你就知道”,因此出现错误。此错误让我纠结了很长时间,最终终于解决。

大家仔细看的话,可以看到上图中所报出的一个warning:The server did not provide any stacktrace information

其实,在这里代码是没有错的,造成错误的原因是我用的chromedriver版本与chrome浏览器的版本不对应。
两者之间的映射关系可参照这位老兄的博客:http://blog.csdn.net/huilan_same/article/details/51896672

然后我下载了一款对应我chrome浏览器版本的chromedriver,再次运行代码结果如下:

用java+selenium启动chrome浏览器时报错Exception in thread

这样就OK了。


你可能感兴趣的:(JAVA_STUDY)