先说一下selenium chrome的安装:
首先你要有chrome浏览器,而且版本要和接下来下载的chromedriver一致
下载chromedriver:https://sites.google.com/a/chromium.org/chromedriver/home
安装selenium的jar包:
- 方法一:https://www.selenium.dev/downloads/选择对应的语言就行,我下载的是java(Download就是普通版本,Alpha Download是alpha版本,我下载的是普通版本)。

- 方法二:maven安装
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency>
测试一下有没有安装成功
package javaBase;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Itest {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
driver.get("http://www.itest.info");
String title = driver.getTitle();
System.out.printf(title);
driver.close();
}
}然后,可以去谷歌浏览器里安装一个selenium IDE的插件,辅助写爬虫
好了,接下来就是各种坑
jar包不完整导致的问题:
错误日志:java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap
这个问题真的是困扰我好久,由于一开始我是用maven安装的,网络问题导致某些jar包没下完全,但是呢,maven检查的时候由于本地仓库已经有这个包了(尽管它不完整),它就不会重新安装,所以才会一直报错。
解决方式:自己手动去下载jar包,把下图中的所有jar包都导入到项目中。

划重点!以上简单粗暴的方法,不得不说,非常好用,但是!当我打包后试图放服务器上跑时,又出错了,因为毕竟时外部导入方式,打包进去总出问题,所以经过我每个jar包依次导入尝试之后发现,其实导致这个错误的就只有一个包:guava-25.0-jre.jar。我去maven仓库找了这个版本的包放在pom.xml中,update一下之后,依旧出错,原因上面已经解释过了,那么怎么办呢?很简单,就去下载的jar包文件中找到这个包(图中的libs里面),替换掉本地仓库中的这个包就可以了。(本地仓库中它的位置可以在你的项目的maven依赖中找到,比如我的:)

无头浏览器设置失败:
现象:没啥错误,就是设置了无头的模式,一运行还是会冒出来浏览器界面
找遍了各大博客、各大网页、各大知乎,终于找到了一个靠谱的回答,你猜怎么着???selenium版本太低!!
解决方式:我也不知道什么版本以上的可以,反正我之前是3.4.0不行,换成了最新版(3.141.59),完美解决~
顺便补充,chrome如何设置无头浏览器
//设置本地chromedriver地址
System.setProperty("webdriver.chrome.driver", C:/chromedriver.exe");
//创建无Chrome无头参数
ChromeOptions chromeOptions=new ChromeOptions();
chromeOptions.addArguments("--headless");
WebDriver driver = new ChromeDriver(chromeOptions);和springboot版本冲突
现象:在普通项目中使用selenium毫无问题浏览器可以正常调用 网站可以正常访问,同样的 代码放到spring boot项目中立马报错。
在普通项目中使用selenium毫无问题浏览器可以正常调用 网站可以正常访问,同样的 代码放到spring boot项目中立马报错,各种尝试百度无果,就像会不会和springboot有关系,然后就往这个方向试了一下,果不其然!!spring boot中pom.xml中的parent里面的核心jar包冲突。
解决方式:更新springboot的parent里的版本,(之前是1.5.8,更新成了2.1.1)
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
<relativePath />
</parent>服务器上chrome打不开
错误日志:selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
解决方式:添加设置就可以了
chromeOptions.addArgument("--disable-extensions")
chromeOptions.addArgument("--headless")
chromeOptions.addArgument("--disable-gpu")
chromeOptions.addArgument("--no-sandbox")
两天遇到这么多问题,也是佩服我自己,总算是跑通了。。。