最近,每次我运行任何BDD测试时,我似乎都会在命令行中收到以下错误-
在chrome驱动程序上运行:73 / 74.0.3729.6和chrome 73
[17996:17852:0502 / 103000.545:ERROR:configuration_policy_handler_list.cc(90)]未知策略:DnsPrefetchingEnabled [17996:17852:0502 / 103000.741:ERROR:configuration_policy_handler_list.cc(90)]未知策略:DnsPrefetchingEnabled
此后,命令行保持打开状态,chrome打开几秒钟,然后关闭并打开新的命令行,大约执行5次以上。
我尝试了以下线程-
但是这似乎会带来更多问题。我已经尝试将chrome驱动程序更新为73和74,但这并不能解决问题。
答案 0 :(得分:0)
此错误消息...
[17996:17852:0502/103000.741:ERROR:configuration_policy_handler_list.cc(90)] Unknown policy: DnsPrefetchingEnabled
...表示 ChromeDriver 无法与 WebBrowser 即 Chrome浏览器通信。
一些有关您的测试环境和您正在使用的 Binary 版本的信息,将有助于我们更好地调试问题。但是,一种简单的解决方案似乎是通过switch
的一个实例来使用ChromeOptions
--dns-prefetch-disable
,如下所示:
详细信息:
--dns-prefetch-disable
Disables prefetching of DNS information.
This switch was listed in chrome/common/chrome_switches.cc
Removed on 2014-11-14
示例代码:
'chromeOptions': {
'args': ['--DNS-prefetch-disable']
}
DNS解析时间会导致大量的用户感知延迟。 DNS解析所需的时间高度可变。延迟时间从大约1ms(本地缓存的结果)到通常报告的几秒钟时间不等。
DNS Prefetching是在用户尝试访问链接之前尝试解析域名的尝试。这是使用计算机的常规DNS解析机制完成的;未使用与Google的连接。域名解析后,如果用户确实导航到该域,则不会因DNS解析时间而产生有效的延迟。 DNS预取可以提供帮助的最明显示例是,当用户正在查看具有许多指向各个域的链接的页面时,例如搜索结果页面。当我们在页面中遇到超链接时,我们从每个域名中提取域名并将每个域名解析为一个IP地址。所有这些工作都是在用户阅读页面的同时进行的,使用最少的CPU和网络资源。当用户单击这些预先解析的名称中的任何一个时,他们平均将在导航中节省大约200毫秒(假设用户最近尚未访问该域)。比平均节省更为重要的是,用户不会倾向于经历DNS解析的“最坏情况”延迟,该延迟通常超过1秒。
BuiltInDnsClientEnabled:使用内置的DNS客户端。
Data type:
Boolean [Windows:REG_DWORD]
Windows registry location for Windows clients:
Software\Policies\Google\Chrome\BuiltInDnsClientEnabled
Mac/Linux preference name:
BuiltInDnsClientEnabled
Supported on:
Google Chrome (Linux, Mac, Windows) since version 25
Supported features:
Dynamic Policy Refresh: Yes, Per Profile: No
Description:
Controls whether the built-in DNS client is used in Google Chrome.
If this policy is set to true, the built-in DNS client will be used, if available.
If this policy is set to false, the built-in DNS client will never be used.
If this policy is left not set, the built-in DNS client will be enabled by default on MacOS, Android (when neither Private DNS nor VPN are enabled) and ChromeOS, and the users will be able to change whether the built-in DNS client is used by editing chrome://flags or specifying a command-line flag.
Example value:
0x00000001 (Windows), true (Linux), <true /> (Mac)
答案 1 :(得分:0)
我重新下载了匹配的ChromeDriver后,我的工作了。显然,我使用的驱动程序在更新后不再支持我的浏览器。
ChromeDriver具有不同的版本,并且应与您当前的Chrome浏览器版本匹配。
即。 我当前的浏览器是77版 所以我必须下载77版的ChromeDriver