c# - Selenium.WebDriver.ChromeDriver 启动缓慢 - 为什么?

标签 c# selenium selenium-chromedriver

我已经创建了最简单的 NUnit 测试来初始化 ChromeDriver,它运行了将近 6 秒。大部分时间(大约 4 秒)都花在一个空白的、不活动的 Chrome 窗口上。

Blank Chrome window looks like this

ChromeDriver.exe 窗口几乎立即出现。

ChromeDriver.exe window

我的单元测试是这样的:

[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" />

我的问题是:

这种缓慢是预料之中的吗?我可以做些什么来加快速度吗?

最佳答案

我正在使用以下单例 IWebDriver 实例,只需几秒钟即可启动。

public class UiTest : IDisposable
{
    private IWebDriver driver = null;

    protected IWebDriver Driver
    {
        get
        {
            if (driver == null)
            {
                driver = new ChromeDriver(new ChromeOptions{Proxy = null});
                driver.Manage().Window.Maximize();
            }
            return _driver;
        }
    }

    public void Dispose()
    {
        driver?.Dispose();
    }
}

在windows自动代理设置中,您可以关闭“自动检测设置”,看看是否有什么不同。但是,我猜,为 ChromeOptions 传递空代理具有类似的效果。

enter image description here

关于c# - Selenium.WebDriver.ChromeDriver 启动缓慢 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58606020/

相关文章:

c# - 如何在 VS2010 的解决方案中列出某种类型的所有对象?

c# - 如何在 C# 中将行筛选的 DataGridView 设置为 DataTable

javascript - 克隆元素发现者

javascript - npm install selenium-webdriver 的 npm 错误

java - 如何使用java在selenium中向下滚动web元素?

python - Docker:使用带有 headless Selenium Chromedriver 的容器

c# - 保存到文件时格式错误

c# - `\` 的字符串替换没有达到我的预期。是什么赋予了?

java - 使用 selenium webdriver 打开本地 HTML 文件

selenium - 如何在 ChromeDriver 中删除 Scrollbar,如何更改 http-agent?