一尘不染

WebDriverException:java.net.ConnectException:在MacOS上使用Selenium 3和chromedriver无法连接到本地主机错误

selenium

嗨,我有这个奇怪的问题。我无法在Mac上使用chromedriver运行测试。我在这里搜寻了每个可能的角落,似乎没有任何帮助。我的浏览器已启动,但在driver.get(url)调用之前冻结。

我的环境:MacOS High Sierra,截至2018年3月12日的最新chromedriver,最新的selenium3.10,最新的TestNG 6.14

我的代码:

public class Temp {

@Test()
public void test1() {
    System.setProperty("webdriver.chrome.driver", "src/test/resources/chromedriver");
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--test-type");
    options.addArguments("ignore-certificate-errors");
    WebDriver driver = new ChromeDriver(options);
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.manage().window().maximize();

    driver.get("https://www.google.co.in/");
    driver.quit();
}
}

我得到的异常是:

[RemoteTestNG]检测到TestNG版本6.14.2,在端口34979上启动ChromeDriver(v2.9.248307)。[警告]
kq_init:检测到kqueue损坏;未使用。:未定义的错误:0 Mar 12,2018 7:06:13
org.openqa.selenium.remote.ProtocolHandshake createSession
INFO:检测到的方言:OSS失败:test1
org.openqa.selenium.WebDriverException:java.net.ConnectException
:无法连接到localhost /
0:0:0:0:0:0:0:1:34979构建信息:版本:‘3.10.0’,版本:‘176b4a9’,时间:‘2018-03-02T19:
03:16.397Z’系统信息:主机:’sandeep-MacBook-
Pro.local’,ip:‘192.168.0.100’,操作系统名称:’Mac OS X’,os.arch:’x86_64’,os.version:
‘10
.13.3’,java.version:‘1.8.0_101’驱动程序信息:driver.version:org.openqa.selenium.remote.service.DriverCommandExecutor上的RemoteWebDriver。

===============================================

默认测试

>运行测试:1,失败:1,跳过:0

============================================默认套件

测试总数:1,失败:1,跳过:0

编辑:如果我删除注释掉driver.manage().window().maximize();功能,异常日志如下:

[RemoteTestNG]检测到TestNG版本6.14.2,在端口22528上启动ChromeDriver(v2.9.248307)。[警告]
kq_init:检测到kqueue损坏;未使用。:未定义错误:0 Mar 12,2018 7:29:29
org.openqa.selenium.remote.ProtocolHandshake createSession
INFO:检测到方言:OSS失败:test1 org.openqa.selenium.WebDriverException:未知错误:运行时。
executionContextCreated具有无效的’context’:{“ auxData”:{“ frameId”:“
8045B2382F1BD52FB2B8744951B53B43”,“ isDefault”:true},“ id”:1,“ name”:“”,“
origin”:“://” }(会话信息:chrome = 65.0.3325.146)(驱动程序信息:chromedriver =
2.9.248307,platform = Mac OS X 10.13.3 x86_64)(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:

===============================================

默认测试

>运行测试:1,失败:1,跳过:0

============================================默认套件

测试总数:1,失败:1,跳过:0

附加信息:我试图通过使用旧版本的chromedriver,旧版本的TestNG,旧版本的selenium进行回归,但是似乎都无法正常工作。

提前致谢。


阅读 350

收藏
2020-06-26

共1个答案

一尘不染

错误说明了一切:

[RemoteTestNG] detected TestNG version 6.14.2 Starting ChromeDriver (v2.9.248307) on port 34979 
[warn] kq_init: detected broken kqueue; not using.: Undefined error: 0 Mar 12, 2018 7:06:13 AM 
org.openqa.selenium.remote.ProtocolHandshake createSession 
INFO: Detected dialect: OSS FAILED: test1
org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:34979 
Build info: version: '3.10.0', revision: '176b4a9', time: '2018-03-02T19:03:16.397Z' 
System info: host: 'sandeep-MacBook-Pro.local', ip: '192.168.0.100', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.3', java.version: '1.8.0_101'

您的主要问题是所使用的二进制文件之间的 版本兼容性 ,如下所示:

支持 Chrome v31-34

  • 我们不知道您的 Chrome浏览器 版本。(假设Chrome浏览器已更新到v65.x级别)
  • 您的 Selenium Client 版本是 3.10.0
  • 您的 JDK版本1.8.0_101 ,这非常古老。

因此, JDK v8u101Selenium Client v3.10.0ChromeDriver 版本( v2.9 )和当前的
Chrome浏览器 版本( v65.0 )之间存在明显的不匹配。

  • JDK 升级到最新级别的 JDK 8u162
  • Selenium 保持在当前水平 3.10.0
  • 升级 ChromeDriver 稳定 ChromeDriver v2.36 水平。
  • Chrome 版本保持在 Chrome v65.x 级别。(根据ChromeDriver v2.36发行说明
  • 清理 你的 项目工作 ,通过你的 IDE重建 仅需要依赖你的项目。
  • 在执行 测试套件 之前和之后,使用 CCleaner 工具清除所有操作系统琐事。 __
  • 如果您的基本 Chrome 版本太旧,请通过 Revo Uninstaller 卸载它,然后安装最新的GA和发行的Chrome版本。
  • 执行您的@Test
2020-06-26