c# - 使用 C# 使用 Selenium WebDriver 进行跨浏览器测试

标签 c# selenium selenium-webdriver

我希望能够在不同的浏览器 (FF/IE/Chrome) 上运行我的单元测试,而不必修改代码来更改我正在使用的网络驱动程序。我是 selenium 测试的新手,非常感谢任何建议。

我希望能够做到以下几点:

  1. 针对特定浏览器运行特定测试
  2. 针对特定浏览器运行所有测试
  3. 针对所有浏览器运行所有测试

以下是我考虑过的一些选项,但它们不能满足我的所有需求。

  1. 询问用户(通过对话窗口)运行测试的浏览器 反对
    • 此方法满足上面列出的条件 #1,但不满足条件 2 和 3。
    • 这种方法会导致用户在每次测试时都被提示,因此它不满足条件 #2
  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/

相关文章:

java - 我需要传递一个条件作为参数

c# - Fluent Entity Framework 映射

c# - SQL Server Azure "Login failed for User"

c# - OnBackButtonPressed 不触发 Xamarin 表单

Java Selenium 获取 JSON 响应正文

java - Selenium IEDriver 问题启动 IE NoSuchWindowException

javascript - selenium - 单击由 javascript 生成的单选按钮

python - 如何修复ModuleNotFoundError : No module named 'webdriver_manager'

java - 使用 Java 和 JXL/JExcel 读取电子表格

c# - Base-64 字符串中的无效字符