このプログラムで、オブジェクト エラーのインスタンスに設定されていないオブジェクト参照が表示されます。Selenium の初心者なので、xmlreader を介してブラウザを開こうとしました。ローカル ライブラリに xmlreader コードと openurl (単に Google ページを開く) があります。インスタンスを作成して、[setup] と [test] でこれらのメソッドを呼び出したいと思います。どんな助けでも感謝します。
namespace ClassLibrary1
{
[TestFixture]
public class Class1
{
IWebDriver driver = null;
LocalLib localLib;
[SetUp]
public void openBrowser()
{
localLib = new LocalLib(driver);
localLib.StartDriverUsingXMLReader();
}
[Test]
public void url()
{
localLib.openUrl();
}
}
public class LocalLib
{
private IWebDriver driver = null;
public LocalLib(IWebDriver _driver)
{
this.driver = _driver;
}
public IWebDriver StartDriverUsingXMLReader()
{
try
{
XmlReader reader = XmlReader.Create(@"C:\Users\XXXXX\Desktop\XML.xml");
while (reader.Read())
{
if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "settings"))
{
if (reader.HasAttributes)
{
string parentBrowser = reader.GetAttribute("browser");
if (parentBrowser.ToLower().Equals("Firefox".ToLower()))
{
driver = new FirefoxDriver();
}
else if (parentBrowser.ToLower().Equals("googlechrome".ToLower()))
{
driver = new ChromeDriver(@"C:\chromedriver2_win32_0.8");
}
else if (parentBrowser.ToLower().Equals("Iexplore".ToLower()))
{
driver = new InternetExplorerDriver(@"C:\IEDriverServer_x64_2.32.3");
}
}
}
} return driver;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
throw;
}
}
public void openUrl()
{
driver.Navigate().GoToUrl("www.google.com");
}
}
}
エラー: オブジェクト参照がオブジェクトのインスタンスに設定されていません。ClassLibrary1.LocalLib.StartDriverUsingXMLReader() で C:\Users\XXXX\XML テスト project\Class1.cs:52 行目
52 行目: string parentBrowser = reader.GetAttribute("browser");
XML ファイル情報
<?xml version="1.0" encoding="utf-8" ?>
<settings>
<!--browser info-->
<settings browser="firefox"/>
</settings>