在同一方法中使用 ngWebDriver(protractor) 和 driver(Selenium) 时出现对象引用错误

Object reference error while using ngWebDriver(protractor) and driver(Selenium) in same method

我的应用程序有 Angular 和非 Angular 网页。对于 Angular 个页面,我使用的是 nuget protractor-net。

在我的测试用例中,当我使用 ngWebDriver 和 Selenium webdriver 时,出现错误 - System.NullReferenceException:对象引用未设置为对象的实例。

实际结果:消息:System.NullReferenceException:对象引用未设置为对象的实例。

private IWebDriver driver;
private NgWebDriver ngDriver;

IWebDriver driver = new ChromeDriver("C:\Users\Automation\chromedriver_win32");
driver.Manage().Window.Maximize();
driver.Manage().Timeouts().AsynchronousJavaScript = TimeSpan.FromSeconds(10);
ngDriver = new NgWebDriver(driver);
ngDriver.FindElement(By.XPath("//button[contains(text(),'Login')]")).Click();

//Once i click on above button, re-directed to non angular page.

driver.FindElement(By.Id("UserName")).SendKeys("test");

对于 angluar 页面,它在 ngDriver 上运行良好,但是当我使用驱动程序时出现错误。

因为您已经使用 private IWebDriver driver; 声明了 driver 您不需要再次声明一个新的 driver 就像您在行中所做的那样初始化它:IWebDriver driver = new ChromeDriver("C:\Users\Automation\chromedriver_win32");

您只需要初始化您在全局级别声明的同一个驱动程序,例如:

private IWebDriver driver;
driver = new ChromeDriver("C:\Users\Automation\chromedriver_win32");