我一直在尝试在c#中学习硒,并且在过去一天左右它已经发展成使用testinitialize。在我从我的测试方法中运行所有内容之前它运行良好,长期目标是让我能够在初始化时加载页面然后在一个测试中登录在另一个测试中添加帖子等等。我不想加载每次我都希望它从登录点开始自由流动。目前我在错误的地方得到了一些东西,因为它现在只是启动一个空白的firefox页面并且什么都不做。我此刻保持简单,所以我可以掌握它。因此,下面的代码应该加载维基百科并检查标题中的一些文本。
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
namespace SeleniumPractice
{
[TestClass]
public class Setup
{
IWebDriver driver;
[TestInitialize]
public void GoToWiki()
{
//Create an instance of the firefox driver.
IWebDriver driver = new FirefoxDriver();
}
[TestMethod]
public void VerifyHelloWorld()
{
driver.Navigate().GoToUrl("https://en.wikipedia.org/wiki/%22Hello,_World!%22_program");
driver.Manage().Window.Maximize();
string actualvalue = driver.FindElement(By.Id("firstHeading")).Text;
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
Assert.AreEqual(actualvalue, "\"Hello, World!\" program");
}
[TestCleanup]
public void Teardown()
{
driver.Close();
}
}
}
此外,我在IwebDriver驱动程序下获得绿线;在我班上出现此错误。
field 'seleniumPractice.Setup.driver' is never assigned to, and always have its default value null
我把它放在这里是因为我注意到当我将测试方法移出测试方法时,测试方法不再识别驱动程序。
答案 0 :(得分:2)
编译器警告和空白Firefox窗口的原因是你实际上并没有在GoToWiki()中为驱动程序字段分配对新的FirefoxDriver对象的引用,而是实际上声明了一个仅限于该范围的新变量方法并将对新FirefoxDriver对象的引用分配给该变量。在VerifyHelloWorld()中调用GoToUrl时,该字段为null。试试这个编辑:
[TestInitialize]
public void GoToWiki()
{
//Create an instance of the firefox driver.
driver = new FirefoxDriver();
}