当前位置: 首页 > 面试题库 >

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

司徒鸿文
2023-03-14
问题内容

嗨,我有这个奇怪的问题。我无法在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

编辑:如果我删除注释掉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进行回归,但是似乎都无法正常工作。

提前致谢。


问题答案:

错误说明了一切:

[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'

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

  • 您正在使用 chromedriver = v2.9
  • chromedriver = 2.9的 发行说明中明确提到以下内容:

支持 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


 类似资料:
  • 试图连接一个简单的JMX监控。托管应用程序和监控工具位于同一台服务器上。当试图连接一个错误 00:30:55610致命http-8080-6 SiteListener:makeJmxConnection:99-java.io。IOException:检索RMIServer存根失败:javax.naming。ServiceUnavailableException[根异常为java.rmi.Conne

  • 问题内容: 我正在尝试使用PyMySQL连接到本地主机上的MySQL: 但是(在Python 2.7和Python 3.2上)我得到了错误: socket.error:[Errno 111]连接被拒绝 pymysql.err.OperationalError:(2003年,“无法连接到’localhost’(111)上的MySQL服务器”) 我确定mysqld正在运行,因为我可以使用command

  • 我创建了一个开放到端口8080:80的nginx容器,这样我就可以从主机访问它。 它连接到具有开放端口9000:9000的php fpm容器 nginx成功运行PHP。 我的问题是php试图访问localhost:8080但问题是phplocalhost:8080无效,它需要连接到nginx容器。 以下是我的wordpress网站上的错误:你可以看到有些东西很时髦。。。下面我将附加docker-c

  • 问题内容: 我对selenium很陌生,因此开始尝试在笔记本电脑中设置selenium。我无法从我的简单代码中调用IE。详细信息如下。您能帮我了解问题出在哪里吗 IE版本:IE 11,IE驱动程序:64位,操作系统:Windows 10 64位,selenium版本:3.11 错误: 码: 问题答案: 错误说明了一切: 从错误堆栈跟踪中可以明显看出,新 会话 没有启动,并且 driver.vers

  • 我试图测试一些普罗米修斯度量,通过推动到本地push网关。push网关docker映像正在运行,当我使用:http://localhost:9091/metrics时,我可以在浏览器中看到它 然而,当我运行python脚本来推送指标时,我得到一个404错误。 错误:urllib2。HTTPError:HTTP错误404:未找到 推送地址中有我遗漏的东西吗?我已尝试添加/度量,但存在相同的错误

  • 这让我很困惑。 我有一个运行nginx-php-fpm的本地开发设置,我在其中使用.localhost作为每个项目的工作域。昨天Chrome停止了与本地域的合作。相反,它只是返回被拒绝的连接。DevTools将错误显示为net::ERR\u CONNECTION\u RESET。 访问http://127.0.0.1工作,但当然不适用于本地项目。 Safari继续与.localhost一起工作。