selenium webdriver 测试通过启动浏览器的任何原因

Any reason why selenium webdriver test pass with launching browser

我从 Github 那里得到了这个项目,出于某种原因,我无法弄清楚项目的作者是如何在不启动浏览器的情况下运行和通过测试的 window。任何解决这个问题的帮助将不胜感激

https://github.com/executeautomation/SpecflowSeleniumParallel

在由 BeforeScenario 属性标记的初始化方法中,使用 BrowserType.Chrome 调用方法 SelectBrowser

[BeforeScenario]
public void Initialize()
{
    SelectBrowser(BrowserType.Chrome);
}

这个方法就是'magic'发生的地方,让我们来看看它

internal void SelectBrowser(BrowserType browserType)
{
    switch (browserType)
    {
        case BrowserType.Chrome:
            ChromeOptions option = new ChromeOptions();
            option.AddArgument("--headless");
            _driver = new ChromeDriver(option);
            _objectContainer.RegisterInstanceAs<IWebDriver>(_driver);
            break;
        default:
            break;
    }
}

请注意 option.AddArgument("--headless"); 行。这将以无头模式启动 ChromeDriver 运行,作为无头浏览器。

A headless browser is a web browser without a graphical user interface. - Wikipedia

由于 headless 模式没有图形用户界面,您在 运行 测试时看不到实际的浏览器。

如果您删除行 option.AddArgument("--headless");,ChromeDriver 将打开一个 window,您将能够看到所有内容。