我正在尝试运行我的第一个selenium测试,但由于端口问题,调用浏览器失败。我的chrome浏览器版本是78.0.3904.97(官方版本((64位(,我已经下载了最新的稳定版本:ChromeDriver 78.0.3904.70。当我运行脚本时,我看到以下错误。
启动ChromeDriver 78.0.3904.70(edb9c9f3de0247fd912a77b7f6cae7447f6d3ad5参考文献/分支头/3904@{#800}(在端口30211上,只允许本地连接。请保护端口ChromeDriver和相关测试框架使用,以防止恶意代码。[157314573.453][警告]:连接到时超时Chrome,正在重试。。。2019年11月7日下午7:22:56org.openqa.selenium.remote.Protocol握手创建会话信息:检测到方言:线程"main"中出现W3C异常org.openqa.selenium.InvalidArgumentException:无效参数
(会话信息:chrome=78.0.3904.97(生成信息:版本:"3.141.59",修订:'e82be7d358',时间:'2018-11-14T08:25:48'
我已经下载了最新的chromedriver exe,它与我的chromebrowser版本兼容。
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class demo1 {
public static void main(String[] args) {
//invoke browser
System.setProperty("webdriver.chrome.driver",
"C:\Users\270816\Documents\Selenium-
installations\chromedriver_win32\chromedriver.exe");
//create browser object
WebDriver driver= new ChromeDriver();
//hit google.com
driver.get("www.bbc.co.uk");
错误消息:
启动ChromeDriver 78.0.3904.70(edb9c9f3de0247fd912a77b7f6cae7447f6d3ad5参考文献/分支头/3904@{#800}(在端口30211上,只允许本地连接。请保护端口ChromeDriver和相关测试框架使用,以防止恶意代码。
此错误消息。。。
[1573154573.453][WARNING]: Timed out connecting to Chrome, retrying...
Nov 07, 2019 7:22:56 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C Exception in thread "main" org.openqa.selenium.InvalidArgumentException: invalid argument
(Session info: chrome=78.0.3904.97) Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:48'
意味着ChromeDriver无法启动/生成新的WebBrowser,即Chrome浏览器会话。
根据错误堆栈跟踪,关于错误的实际原因还没有定论。然而,当你使用:
- 硒v3.141.59
- ChromeDriver 78.0.3904.70
- 铬=78.0.3904.97
我怀疑问题出在测试系统上的JDK版本
解决方案
确保:
- JDK升级到当前级别JDK8u222
- 如果您的基本Web客户端版本太旧,请将其卸载并安装最新的GA和发布的Web客户端版本
- 进行系统重新启动
- 以非root用户身份执行您的
@Test
- 总是调用CCD_ 3方法中的CCD_;优雅地销毁WebDriver和Web客户端实例