我是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);
}