0
Chrome WebDriverを使用して、C#.NETでSelenium 3.4.0を使用してテキストを処理しています。私はテストを実行するブラウザを処理するラッパーを持っています。これを実行すると、どちらのブラウザーも初期化されません。Selenium with Wrappersを使用してChrome WebDriveを使用するにはどうすればよいですか?
エラー:(ドライバー=ヌルそれが明示的にlogintextから設定されています。つまり、私のbrowserfactoryファイルから)
Message: System.NullReferenceException : The WebDriver browser instance was not initialized. You should first call the method InitBrowser.
LoginTest.cs:
using NUnit.Framework;
using qa.PageObjects;
using qa.WrapperFactory;
using System.Configuration;
namespace qa.TestCases
{
class LoginTest
{
[Test]
public void Test()
{
// Sign in through google first, so we don't have to follow new tabs
BrowserFactory.InitBrowser("Chrome");
BrowserFactory.LoadApplication(ConfigurationManager.AppSettings["URL"]);
Page.Login.ClickOnMyAccount();
Page.Login.LoginToGoogle();
BrowserFactory.CloseAllDrivers();
}
}
}
BrowserFactory.cs:
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using System;
using System.Collections.Generic;
namespace qa.WrapperFactory
{
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 "Chrome":
if (Driver == null)
{
driver = new ChromeDriver();
Drivers.Add("Chrome", Driver);
}
break;
}
}
public static void LoadApplication(string url)
{
Driver.Url = url;
}
public static void CloseAllDrivers()
{
foreach (var key in Drivers.Keys)
{
Drivers[key].Close();
Drivers[key].Quit();
}
}
}
}