为什么我的[TestMethods]不能引用我在[test initialize]中创建的浏览器?

时间:2015-11-20 01:18:02

标签: c# selenium automated-tests

在我的selenium webdriver Unit测试中,我在顶部有一个[TestInitialize]部分,只是为了设置浏览器,它在所有测试中都会重现并且不是很漂亮。

我的问题是,在实际的[TestMethod]中,我在初始化中设置的Chrome浏览器(即变量名称" d") - 未被识别。当我将鼠标悬停在" d"在测试方法中,它说"名称' d'在当前的背景下不存在。"

我认为我在这里犯了一个相当基本的错误,有人可以用简单的方式解释我做错了什么(希望,我应该做什么)?

[TestInitialize]
public void TestSetup()
{
    IWebDriver d = new ChromeDriver("C:\\location\\of\\my\\chrome_driver\\is_here\\");
    d.Manage().Cookies.DeleteAllCookies();
    d.Manage().Window.Maximize();
}

[TestMethod]
public void ClickTrumpet_LouieArmstrongMusicPlays()
{            
    d.Navigate().GoToUrl("http://bupitybop.kom/");

    for (int i = 0; i < 12; i++)
    {
        d.FindElement(By.ClassName("boopi-boopi")).Click();
    }
    d.Quit();
}

1 个答案:

答案 0 :(得分:0)

dTestSetup()范围内声明。它不会在TestSetup()之外提供。为了解决这个问题,请将其设为实例变量,以便它在整个测试类中具有范围。

IWebDriver d;

[TestInitialize]
public void TestSetup()
{
    d = new ChromeDriver("C:\\location\\of\\my\\chrome_driver\\is_here\\");
    d.Manage().Cookies.DeleteAllCookies();
    d.Manage().Window.Maximize();
}

[TestMethod]
public void ClickTrumpet_LouieArmstrongMusicPlays()
{            
    d.Navigate().GoToUrl("http://bupitybop.kom/");

    for (int i = 0; i < 12; i++)
    {
        d.FindElement(By.ClassName("boopi-boopi")).Click();
    }
    d.Quit();
}