您好我在使用Instantiated类中的方法时遇到问题。我对selenium和C#很新,但这是我开始的代码......
第1课
[TestClass]
public class UnitTest1
{
Class2 myClass2 = new Class2();
static IWebDriver webDriver;
[AssemblyInitialize]
public static void invokeBrowser(TestContext context)
{
webDriver = new ChromeDriver(@"C:\Selenium\");
}
[TestMethod]
public void TestMethod1()
{
myClass2.RandomMethod();
}
第2课
[TestClass]
public class Class2
{
static IWebDriver webDriver;
public void invokeBrowser(TestContext context)
{
webDriver = new ChromeDriver(@"C:\Selenium\");
}
[TestMethod]
public void RandomMethod()
{
webDriver.Navigate().GoToUrl("http://google.com");
}
}
我Class1
期间testmethod
发生错误,我用来从其他班级拨打Randommethod
Message: Test method CheckRequest.UnitTest1.TestMethod1 threw exception:
System.NullReferenceException: Object reference not set to an instance of an object.
我一直在努力解决这个错误,我只是不明白我做错了什么。我设置的唯一对象是我的webdriver
。我正在创建两个不同的webdriver对象的问题?感谢您的时间,非常感谢任何帮助。
答案 0 :(得分:0)
[TestClass]
public class UnitTest1
{
Class2 myClass2 = new Class2();
public static IWebDriver webDriver;
[AssemblyInitialize]
public static void invokeBrowser(TestContext context)
{
webDriver = new ChromeDriver(@"C:\Selenium\");
}
[TestMethod]
public void TestMethod1()
{
myClass2.RandomMethod();
}
}
//Class2
[TestClass]
public class Class2
{
//[TestMethod]
public void RandomMethod()
{
UnitTest1.webDriver.Navigate().GoToUrl("http://google.com");
}
}
[AssemblyInitialize]方法将在项目中的任何方法之前调用,因此wedDriver将具有值。 TestMethod1将调用RandomMethod(),如果你为RandomMethod保留[TestMethod],当你运行所有的TestMethods时,它将被执行两次,因为每个[TestMethod]都会被运行。这就是你需要的。