首页 > 解决方案 > 失败/错误:红宝石中的 $driver.navigate.to ENV['URL']

问题描述

在终端中以 headless = true 运行测试用例。我收到以下错误消息。

错误信息

请在下面找到详细信息:

我正在使用 chromedriver 版本 86 和 chrome 浏览器版本 86,并且在 .env 文件中也已更新。另外,我在 Windows 中使用 Ubuntu 运行脚本。

标签: rubyseleniumenvironment-variables

解决方案


该错误ERR_NAME_NOT_RESOLVED意味着无法将 URL 解析为 IP 地址。最有可能的ENV['URL']是,没有返回有效的 URL,主机名中有拼写错误,或者它引用了脚本的 DNS 无法解析的私有主机。考虑临时添加一些调试信息,比如

url = ENV['URL']
STDERR.puts "Navigating to [#{url}]"
$driver.navigate.to url

或使用Pry暂停您的代码,并检查以确保事情符合您的预期:

require 'pry'; binding.pry
$driver.navigate.to ENV['URL']

从 Pry shell 中,您可以查看ENV['URL']评估结果,还可以手动驱动$driver以查看它是否按预期工作。

如果 URL 实际上看起来是正确的,那么问题可能与私有主机和 DNS 问题有关。确保您可以在同一台服务器上通过其他方式导航到 url(如果它是服务器,请考虑尝试ping使用主机名,或使用curlwget进行快速检查)。


推荐阅读