在同一方法中使用 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");
我的应用程序有 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");