所以我们在C#中使用Selenium来控制Chrome。在使用 v74 chromedriver 的 Chrome v74 和使用 v75 chromedriver 的 Chrome v75(测试版)中都出现了以下问题。
例如,在与网站进行大约 12 次交互后,我们收到错误
[10084:5660:0601/111205.119:ERROR:browser_process_sub_thread.cc(221)] Waited 57 ms for network service
我们无法编辑 browser_process_sub_thread.cc
并重新编译。
我已就此问题寻求帮助,并且正在其他地方进行讨论。但是,由于 v75 beta 因同样的问题而中断,因此似乎没有发生什么。
我们如何解决这个问题?它只出现在这组测试中,而不出现在其他测试中。
稍后
现在我收到这种消息,即
ERROR:browser_process_sub_thread.cc(217)] Waited 285 ms for network service
立即而不是在一些互动之后!发生了什么事?
最佳答案
这个错误信息...
ERROR:browser_process_sub_thread.cc(217)] Waited 771 ms for network service
...来自 IOThreadCleanUp()
browser_process_sub_thread.cc 中的方法实现为的文件:
// Record time spent for the method call.
base::TimeDelta network_wait_time = base::TimeTicks::Now() - start_time;
UMA_HISTOGRAM_TIMES("NetworkService.ShutdownTime", network_wait_time);
LOG(ERROR) << "Waited " << network_wait_time.InMilliseconds()
<< " ms for network service";
根据 Chromium Servicification - Need better handling for when a core service process fails to start/initialize 中的讨论按照新 网络进程 (NP) [--enable-features=NetworkService
] 如果生成子进程但服务启动失败,在这些情况下:
- google-chrome浏览器用户界面保持可见和打开。
- 由于该服务是可重启的,因此似乎在幕后发生了尝试重生子进程的无限循环,这会消耗更多的系统资源。
- 由于严重故障,可见的浏览器没有正常关闭,只是坐在那里,引擎盖下没有网络。
因此,Chrome 需要的所有核心服务都需要一个策略来运行,这可能是网络进程 (NP) 的故障路径。
按照上述要求,根据讨论Sandbox the network service on Windows Chrome 为新的网络进程 (NP) 引入了新的沙盒 (SANDBOX_NETWORK_TYPE)。
Windows is the first platform to roll out of both the new features and you are one of the luckiest user to have the first hand user experience of:
为网络服务启用的功能:NetworkService
--enable-features=NetworkService
为 windows 启用的功能sandbox在网络服务上:NetworkServiceWindowsSandbox
--enable-features=NetworkServiceWindowsSandbox
这revision还有这个commit在sandbox_win.cc
来自@WillHarris 的着陆将解决这个问题。
关于windows - 错误 :browser_process_sub_thread. cc(221)] 在 Windows 上使用 Selenium ChromeDriver 和 Chrome 等待网络服务 57 毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56403638/