が、私は私の問題にあなたの助けをしたい、してください:それは「ドライバ」の変数を初期化していなかったので、それは、失敗した、以下のコードでオブジェクトのインスタンスを設定する方法は?
[setUp]
public void setup()
{
BrowserFactory.InitBrowser("Chrome");
}
しかし:私のテストクラスから は、私は私のテストコードを実行してみてください。
(私はMSG得た: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'はnullにはなりません。呼び出されたステートメントが次の場合:BrowserFactory.LoadApplication(ConfigurationManager.AppSettings ["https://www.google.co.il/webhp?tab=ow&authuser=0&ei=Tnk2WZmXFMP7-AGGhIvwBQ&ved=0EKkuCAQoAQ"]); あまりにも手伝ってもらえますか? –
ところで、私はこのリンクで同じQを見つけました:[link](https://stackoverflow.com/questions/41104389/selenium-webdriver-the-webdriver-browser-instance-was-not-initialized-when-usin ) –