WSL Rails Selenium Chromedriver 连接拒绝本地主机 9515

问题描述 投票:0回答:1

在 WSL 上的 Rails 中运行 Cucumber 功能测试时返回:

无法打开与 localhost:9515 的 TCP 连接(连接被拒绝 - “localhost”端口 9515 的 connect(2))(Errno::ECONNREFUSED)

尝试在 Ubuntu 上运行 Selenium 但没有成功,然后阅读本文 Chrome 无法在 WSL (Ubuntu 18.04) 中启动,并在 Chromedriver 下显示“DevToolsActivePort 文件不存在” 我尝试了此配置:

Capybara.register_driver :windows_chrome do |app|
  capabilities = Selenium::WebDriver::Remote::Capabilities.chrome()
  Capybara::Selenium::Driver.new(app,browser: :chrome, url: 'http://localhost:9515',
                                     desired_capabilities: capabilities)
  end
Capybara.javascript_driver = :windows_chrome
Capybara.default_max_wait_time = 5 # Seconds
  • Windows 10 版本 10.0.19041.84
  • Windows 版本 80.0.3987.106(官方版本)(64 位)中安装的 Chrome
  • Windows 10 中的 Chromedriver 80.0.3987.16,端口 9515
  • 在 Chrome 中访问 localhost:9515 返回:{"value":{"error":"unknown command","mes...
  • Ubuntu 18.0.4
  • cat /etc/resolv.conf 返回:172.19.160.1
  • 红宝石2.6.3p62
  • Rails 6.0.1
  • 水豚 (3.29.0)
  • selenium-webdriver (3.142.6)
  • 网络驱动程序 (4.1.3)
  • sudo ufw 状态编号返回:状态:非活动
  • Windows 防火墙已禁用
  • Windows Defender 已禁用
  • 没有运行防病毒软件

回声“它有效”| nc -4 -v 本地主机 9515 nc:连接到本地主机端口 9515(tcp)失败:连接被拒绝

回声“它有效”|数控-4-v 172.19.160.1 9515 nc: 连接到 172.19.160.1 端口 9515 (tcp) 失败: 连接超时

在水豚中使用 172.19.160.1(WSL2 IP)时也会超时。

什么可能阻止端口 9515 上的连接?

更新 从这篇文章当使用 Chrome 浏览器运行 WebDriver 时,即使浏览器正常启动,也会收到消息“仅允许本地连接”

我找到了解决方法。如果我像这样启动 Chromedriver,我可以运行测试:

chromedriver.exe --whitelisted-ips=""
不理想;仍在寻找方法来确定正在使用哪些地址和端口。实际上可能是 IPV6 而不是 IPV4?

ruby-on-rails cucumber selenium-chromedriver windows-subsystem-for-linux
1个回答
0
投票

此错误“使用 Chrome 浏览器运行 WebDriver 时,收到消息“仅允许本地连接”,即使浏览器正常启动”。正如您在更新中所述,由于 Windows 可以将 WSL 视为外部计算机,因此可能会发生这种情况。您可以在ChromeDriver安全注意事项中获得更多信息,但总结一下:“默认情况下,ChromeDriver仅允许本地连接。如果您需要从远程主机连接到它,请在命令上使用--allowed-ips开关行指定允许连接到 ChromeDriver 的 IP 地址列表”

因此,为了解决这个问题,我们可以使用 WSL 中的 ChromeDriver,您必须允许来自 WSL 的请求(来源、IP)。

为此,您可以使用以下命令:

#获取您的 WSL IP 地址 在 POWERSHELL/CMD 上运行

wsl 主机名-I

173.20.139.98

#在此处启用您的 WSL 来源和 WSL IP “your_path_to_windows_chromedriver”/chromedriver.exe --allowed-origins=* --allowed-ips=173.20.139.98

希望有帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.