c# - Selenium.WebDriver.ChromeDriver 启动缓慢 - 为什么?
问题描述
我创建了最简单的 NUnit 测试来初始化 a ChromeDriver
,它需要将近 6 秒才能运行。大多数时间(大约 4 秒)都花在一个空白的、非活动的 Chrome 窗口上。
ChromeDriver.exe 窗口几乎立即出现。
我的单元测试如下所示:
[Test]
public void Simplest_Possible_Test()
{
var options = new ChromeOptions { Proxy = null };
using (new ChromeDriver(options))
{
// Do nothing
}
}
我正在使用这些 nuget 包:
<package id="NUnit" version="3.12.0" targetFramework="net47" />
<package id="Selenium.Support" version="3.141.0" targetFramework="net47" />
<package id="Selenium.WebDriver" version="3.141.0" targetFramework="net47" />
<package id="Selenium.WebDriver.ChromeDriver" version="78.0.3904.7000" targetFramework="net47" />
我的问题是:
这种缓慢是预期的吗?我可以做些什么来加快速度吗?
解决方案
几个月前,我(和其他人)构建了一个网络机器人(不要问什么是 :-))。目标表面是一个特定的网站。为了准备,我们在离线局域网环境中尽可能多地复制了目标网站。在其他工具中,我们使用 Selenium 运行 Chrome,启动时间约为 4-6 秒,演出是 Intel Core i5 ~3 GHz 8GB RAM Windows 10 Pro,还有另一台类似的电脑,笔记本电脑,主要区别在于运行 Ubuntu 18.04,启动时间差不多。
C# 不是这里的问题。在注意到延迟(至少对我来说不是什么大问题)之后,考虑到离线设置(没有请求在互联网上飞来飞去),以及不同的计算机构建,我敢说这是启动时间,仅此而已,没有猴子生意。
通过使用具有更快内存、更快 CPU、更快总线、SSD 驱动器等的高端 gig 可以实现更快的启动时间......
推荐阅读
- android - 是什么导致TextView垂直移位
- mysql - 为什么EXPLAIN和Slow query的结果差别很大?
- firebase - 如何使用 firebase 从 React Native 应用程序接收邮件?
- javascript - 单击时停止关闭对话框
- javascript - 如何发送函数(数据)的值而不是将其发送到 $(“#timer”)?
- imacros - 循环一段特定的代码(我不知道我在做什么)
- php - 如何在 laravel 中一次上传多个照片/文件?
- office-js - 插件因版本号覆盖和图标分辨率错误而被拒绝
- node.js - 如何检查数据库集合MongoDB中是否已存在用户名
- python - 在 ModelAdmin 中覆盖 get_fields 在所有模型上返回此字段