IWebDriver对象列表导致Selenium测试失败

时间:2018-10-02 20:20:50

标签: c# .net selenium

我是Selenium的新手,而C#还是新手。 我为什么不能列出浏览器对象的列表,以便可以遍历以便创建检查多个浏览器的测试,这是有原因的吗? 如何修改下面的第二个示例以使其正常工作?

这是一个简化的版本,为了方便示例,我使用了全局变量,但是当我尝试通过传递的值进行更大的比例转换时,也会存在相同的问题。

此代码为什么起作用:

class NUnitTestClass
{
    private List<IWebDriver> Browser_Driver_List; // Unused here
    private IWebDriver driver = new ChromeDriver("C:\\Workfolders\\Selenium\\Browser Drivers");

    [SetUp]
    public void startBrowsers()
    {
    }

    [Test]
    public void executeTestOnAllBroswers()
    {
        driver.Url = "http://www.google.com";
    }

    [TearDown]
    public void closeBrowser()
    {
        driver.Close();
    }
}

但是此代码在executeTestOnAllBroswers()步骤期间失败,并在Chrome窗口的网址栏中显示“ data:”:

class NUnitTestClass
{
    private List<IWebDriver> Browser_Driver_List; // driverChrome, driverFirefox, driverIE;
    private IWebDriver driver = new ChromeDriver("C:\\Workfolders\\Selenium\\Browser Drivers");

    [SetUp]
    public void startBrowsers()
    {
        // Create the list of all desired browser drivers
        Browser_Driver_List.Add(driver);
    }

    [Test]
    public void executeTestOnAllBroswers()
    {
        foreach (IWebDriver driver in Browser_Driver_List)
        {
            driver.Url = "http://www.google.com";
        }
    }

    [TearDown]
    public void closeBrowser()
    {
        foreach (IWebDriver driver in Browser_Driver_List)
        {
            driver.Close();
        }
    }
}

此外,在我的第一个示例中,startBrowsers()的以下新增内容导致测试失败。我不确定为什么,但是我怀疑与处理列表的方式有关:

    [SetUp]
    public void startBrowsers()
    {
        Browser_Driver_List.Add(driver);
    }

0 个答案:

没有答案