我希望能够在不同的浏览器 (FF/IE/Chrome) 上运行我的单元测试,而不必修改代码来更改我正在使用的网络驱动程序。我是 selenium 测试的新手,非常感谢任何建议。
我希望能够做到以下几点:
- 针对特定浏览器运行特定测试
- 针对特定浏览器运行所有测试
- 针对所有浏览器运行所有测试
以下是我考虑过的一些选项,但它们不能满足我的所有需求。
- 询问用户(通过对话窗口)运行测试的浏览器
反对
- 此方法满足上面列出的条件 #1,但不满足条件 2 和 3。
- 这种方法会导致用户在每次测试时都被提示,因此它不满足条件 #2
- 将默认浏览器存储在配置文件中。
- 可以使用文本编辑器轻松编辑配置文件
- 此方法满足条件#1 和#2,但需要手动编辑 运行测试之前的配置文件。
最佳答案
这是解决您的问题的一种简单方法。 您可以使用 NUnit 在多个浏览器上执行 selenium 测试。您需要做的就是从 NuGet 下载 Nunit 并在您的项目中引用它。这是一个工作正常的示例代码。
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Chrome;
namespace MultipleBrowserTesting
{
[TestFixture(typeof(FirefoxDriver))]
[TestFixture(typeof(ChromeDriver))]
[TestFixture(typeof(InternetExplorerDriver))]
public class BlogTest<TWebDriver> where TWebDriver : IWebDriver, new()
{
private IWebDriver _driver;
[Test]
public void Can_Visit_Google()
{
_driver = new TWebDriver();
// Navigate
_driver.Manage().Window.Maximize();
_driver.Navigate().GoToUrl("http://www.google.com/");
}
[TestFixtureTearDown]
public void FixtureTearDown()
{
if (_driver != null)
_driver.Close();
}
}
}
关于c# - 使用 C# 使用 Selenium WebDriver 进行跨浏览器测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28595354/