当我在测试结束时尝试使用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");
}
可能是什么问题?