前言

今天用webdriver打开edge浏览器的时候,程序在创建EdgeDriver实例的时候报错,搞了一两个小时才搞好。

selenium异常报错

解决方法

1. 添加启动参数

此方法参考:selenium启动ChromiumDriver出现403错误的解决办法

我原先采用的是无参构造,现在它报了403的错,所以干脆禁掉它。

1
2
3
4
5
6
7
8
String key = "webdriver.edge.driver";
String value = "E:\\MyCode\\edgedriver\\msedgedriver_112.exe";
System.setProperty(key, value);

EdgeOptions edgeOptions = new EdgeOptions();
edgeOptions.addArguments("--remote-allow-origins=*");//解决 403 出错问题

WebDriver driver = new EdgeDriver(edgeOptions);

但是通过这种方法会有警告:

警告

意思是:找不到用于 的 CDP 版本。您可能需要使用类似于“org.seleniumhq.selenium:selenium-devtools-v86:4.6.0”的内容包含对特定版本的CDP的依赖,其中版本(“v86”)与您正在使用的基于铬的浏览器的版本匹配,并且工件的版本号与Selenium的版本号相同。

2. 修改selenium依赖

看到上面说依赖的问题,我就想是不是我selenium依赖的版本不适配了,就修改了pom。

selenium的maven依赖:selenium-maven依赖库

将我原先4.6.0的版本切换为4.8.0

1
2
3
4
5
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.8.0</version>
</dependency>

重新运行后就不会出现上种方法的警告了。

参考链接