现在很多网页内容都是动态生成的,动态页面信息的提取可以使用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了。