chromeDriver.Quit()trow NullReferenceException

时间:2015-07-14 11:03:56

标签: c# selenium

当我在测试结束时尝试使用chromeDriver.Quit()时,我得到了NullReferenceException。 我的怀疑是因为我使用SwitchToWindow函数看起来像这样:

public void SwitchToWindow(Expression<Func<IWebDriver, bool>> predicateExp)
{
    var predicate = predicateExp.Compile();
    foreach (var handle in chromeDriver.WindowHandles)
    {
        chromeDriver.SwitchTo().Window(handle);
        if (predicate(chromeDriver))
        {
            return;
        }
    }

    throw new ArgumentException(
                string.Format("Unable to find window with condition: '{0}'", 
                               predicateExp.Body));
}

在测试过程中,我要去另一个窗口,然后回到第一个窗口,然后我试图关闭所有窗口。但由于某种原因chromeDriver.Quit()没有为我工作,我得到了这个错误。 我的chrome驱动程序在我的所有测试开始时都是这样的

  private IWebDriver chromeDriver;

public void OpenAdAssistantPage(out ChromeOptions options, out ChromeDriverService service,
        out DesiredCapabilities capabilities, out IWebDriver chromeDriver)
    {
        log.Info("end to end test ");
        options = new ChromeOptions();
        options.AddArgument("--test-type");
        options.AddArgument("--ignore-certifcate-errors");
        options.AddArgument("--enable-logging");
        options.AddArgument("--logging-level=3");
        options.AddArgument("--log-path=c:\\temp\\chromedriver.log");
        options.AddArgument("-incognito");

        service = ChromeDriverService.CreateDefaultService();
        service.LogPath = "c:\\temp\\chromedriver.log";
        service.EnableVerboseLogging = true;

        capabilities = DesiredCapabilities.Chrome();
        capabilities.SetCapability(ChromeOptions.Capability, options);

        chromeDriver = new ChromeDriver(service, options);
        //  chromeDriver.Manage().Window.Maximize();
        chromeDriver.Navigate().GoToUrl("my_url");

}

可能是什么问题?

0 个答案:

没有答案