我要你的幫助,我的問題,請您: 從我的測試類,我嘗試運行我的測試代碼:如何設置爲下面的代碼的對象的實例?
[setUp]
public void setup()
{
BrowserFactory.InitBrowser("Chrome");
}
但是,它失敗了,因爲它沒有初始化的「驅動器」變量。
(我得到了味精信息:System.NullReferenceException:將webdriver的瀏覽器實例未初始化,您應先調用方法InitBrowser。)
下面InitBrowser(代碼)功能,因爲我從http://toolsqa.com/selenium-webdriver/c-sharp/browser-factory-or-webdriver-factory/
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
using System;
using System.Collections.Generic;
namespace _AutomationTests.WrapperFactory
{
public class BrowserFactory
{
private static readonly IDictionary<string, IWebDriver> Drivers = new Dictionary<string, IWebDriver>();
private static IWebDriver driver;
public static IWebDriver Driver
{
get
{
if (driver == null)
throw new NullReferenceException("The WebDriver browser instance was not initialized. You should first call the method InitBrowser.");
return driver;
}
private set
{
driver = value;
}
}
public static void InitBrowser(string browserName)
{
switch (browserName)
{
case "Firefox":
if (Driver == null)
{
driver = new FirefoxDriver();
Drivers.Add("Firefox", Driver);
}
break;
case "IE":
if (Driver == null)
{
driver = new InternetExplorerDriver(@"C:\PathTo\IEDriverServer");
Drivers.Add("IE", Driver);
}
break;
case "Chrome":
if (Driver == null)
{
driver = new ChromeDriver();//@"C:\PathTo\CHDriverServer"
Drivers.Add("Chrome", Driver);
}
break;
}
}
public static void LoadApplication(string url)
{
Driver.Url = url;
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl("javascript:document.getElementById('overridelink').click()");
}
public static void CloseAllDrivers()
{
foreach (var key in Drivers.Keys)
{
Drivers[key].Close();
Drivers[key].Quit();
}
}
}
複製
}
非常感謝!
你可以將你當前的代碼(用於測試和InitBrowser)粘貼到你的問題中嗎? – mjwills
是的。我使用你的第一個建議,並解決了上述問題。但現在它失敗了LoadApplication()函數,「Driver.Url = url;」,我得到了這個錯誤信息:「參數'url'不能爲空。」當被調用的語句是:BrowserFactory.LoadApplication(ConfigurationManager.AppSettings [「https://www.google.co.il/webhp?tab=ow&authuser=0&ei=Tnk2WZmXFMP7-AGGhIvwBQ&ved=0EKkuCAQoAQ」]); 你能幫我嗎? –
順便說一下,我發現在這個鏈接相同的Q:[鏈接](https://stackoverflow.com/questions/41104389/selenium-webdriver-the-webdriver-browser-instance-was-not-initialized-when-usin ) –