从 C# NUnit 在多个浏览器中依次运行 Selenium 测试

2024-03-10

我正在寻找推荐/最好的方法来使 Selenium 测试在多个浏览器中相继执行。我正在测试的网站不大,所以我还不需要并行解决方案。

我有常用的测试设置方法[SetUp], [TearDown], and [Test]。当然,SetUp 会实例化一个新的ISelenium对象与我想用任何浏览器进行测试。

所以我想做的是以编程方式说:这个测试将依次在 Chrome、IE 和 Firefox 上运行。我怎么做?

EDIT:

这可能会有所帮助。成功构建后,我们使用 CruiseControl.NET 启动 NUnit 测试。有没有办法将参数传递给 NUnit 可执行文件,然后在测试中使用该参数?这样我们就可以让 NUnit 使用不同的浏览器参数运行多次。


NUnit 2.5+ 现在支持通用测试装置,这使得在多个浏览器中进行测试变得非常简单。

运行以下示例将执行 GoogleTest 两次,一次在 Firefox 中,一次在 IE 中。

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
using System.Threading;

namespace SeleniumTests 
{
    [TestFixture(typeof(FirefoxDriver))]
    [TestFixture(typeof(InternetExplorerDriver))]
    public class TestWithMultipleBrowsers<TWebDriver> where TWebDriver : IWebDriver, new()
    {
        private IWebDriver driver;

        [SetUp]
        public void CreateDriver () {
            this.driver = new TWebDriver();
        }

        [Test]
        public void GoogleTest() {
            driver.Navigate().GoToUrl("http://www.google.com/");
            IWebElement query = driver.FindElement(By.Name("q"));
            query.SendKeys("Bread" + Keys.Enter);

            Thread.Sleep(2000);

            Assert.AreEqual("bread - Google Search", driver.Title);
            driver.Quit();
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 C# NUnit 在多个浏览器中依次运行 Selenium 测试 的相关文章

随机推荐

  • Angular mat-selection-list,如何使单个复选框选择类似于单选按钮?

    如何使单个复选框选择mat selection list 类似于单选按钮 它接受一组值中的一个值 组件 gt 9 1 0 选择列表现在直接支持单选模式 将多个输入设置为 false 来启用它
  • 如何取消 NSBlockOperation

    我有一个很长的运行循环 我想在后台运行NSOperation 我想使用一个块 NSBlockOperation operation NSBlockOperation blockOperationWithBlock while not can
  • Swift 中处理窗口关闭事件

    如何使用swift处理窗口的关闭事件 例如询问 您确定要关闭表单吗 如果 是 则该表格将关闭 如果 否 该表格将不关闭 显示消息框对我来说不是问题 viewWillDisappear 也适用于最小化 但我只需要关闭事件 Thanks 就像上
  • 为什么 Laravel Redis::scan('*') 返回预期的键,但 Redis::keys('*') 没有返回?

    Problem 我使用 Python 代码向 redis 添加了一个值 当我尝试查询时使用 Laravel Redis get key name 它返回null Redis keys 返回使用 Laravel 但不使用 Python 创建的
  • limitTo 在 AngularJs 的 ng-repeat 中不起作用

    我正在为某些应用程序编写一些代码 我想限制聊天中的消息 this limitM 10 scope msgsCount contains the number of messages
  • 将复杂类型作为数据传递给 jquery ajax post

    我的数据模型类如下所示 DataContract public class Order DataMember public string Id get set DataMember public string AdditionalInstr
  • CF 标志的行为难以理解

    假设有一段代码 mov al 12 mov bl 4 sub al bl 在这种情况下 CF 0 标志 但在我看来它应该等于 1 因为减法运算是在加法运算上实现的 并且处理器不知道我们将其作为输入提供什么 无论是有符号还是无符号数字 它只是
  • 如何告诉窗体在关​​闭时不要释放特定控件?

    我想为我的子类表单对象编写一个函数 该函数必须关闭窗体并返回该窗体上的控件 以便我可以将其放在另一个窗体上 我无法阻止控件被处置 我认为使用 this Controls Remove someControl 从控件集合中删除它足以阻止它处置
  • Spring security中每个请求不同的csrf令牌

    我在用
  • 具有重载赋值的嵌套派生类型

    我有一个派生类型 wrapper 包含其他派生类型 over 对于后者 赋值运算符已被重载 由于派生类型的分配按默认组件方式发生 因此我希望分配两个实例wrapper将调用重载分配over在某一点 然而 使用下面的程序 情况似乎并非如此 仅
  • SelectById2 的指针标注

    我正在尝试将我在 VBA 中编写的一些代码移植到 Python 中以控制 Solidworks 特别是自动化草图编辑 我在 Python 中使用 Solidworks SelectById2 时遇到问题 在 VBA 中 以下代码工作正常 P
  • PHP continue 函数内

    这可能非常微不足道 但我一直无法弄清楚 这有效 function MyFunction Do stuff foreach x as y MyFunction if foo bar continue Do stuff echo output
  • Java 并发:Synchronized(this) => 和 this.wait() 和 this.notify()

    我非常感谢您帮助理解以下内容的 并发示例 http forums sun com thread jspa threadID 735386 http forums sun com thread jspa threadID 735386 pub
  • 计算时间跨度的最佳方法是什么

    在我的 C 程序中 我的要求是计算 foreach 循环内的业务逻辑执行的时间跨度 我必须存储时间跨度 我正在使用以下代码 for int i 0 i lt 100 i DateTime start DateTime Now Busines
  • Docker 信任初始化

    当对 tuf 上的公证人对 docker 内容信任的初始信任初始化时 我了解了 TUF 公证人和内容信任的工作原理 但我不清楚的是 最初的信任是如何建立的 我怎么知道第一次拉取没有受到损害并且初始 root json 是值得信赖的 例如 如
  • 使用foldr实现zip

    我目前正在阅读 Real World Haskell 的第 4 章 我正在努力理清思路根据foldr 实现foldl http book realworldhaskell org read functional programming ht
  • 寻找一种非“蛮力”算法来删除矩形集合的相交区域

    我有一个 n 大小的矩形集合 其中大部分彼此相交 我想删除相交并将相交的矩形减少为较小的非相交的矩形 我可以轻松地暴力破解解决方案 但我正在寻找一种有效的算法 这是一个可视化 原来的 处理 理想情况下 方法签名如下所示 public sta
  • 如何解决以下 SDK 版本报告了严重问题:com.google.android.gms:play-services-safetynet:17.0.0

    我在发布应用程序时收到此警告 play services safetynet 的开发商 com google android gms play services safetynet 已报告严重 版本 17 0 0 存在问题 在发布新版本之前
  • C# 中的 N 体模拟

    我正在尝试使用 Runge Kutta 4 或 Velocity Verlet 集成算法在 C 中实现 N 体模拟 在我转向更多数量的粒子之前 我想通过模拟地球绕太阳的轨道来测试模拟 但是 由于某种原因 我得到的不是椭圆轨道 而是一个奇怪的
  • 从 C# NUnit 在多个浏览器中依次运行 Selenium 测试

    我正在寻找推荐 最好的方法来使 Selenium 测试在多个浏览器中相继执行 我正在测试的网站不大 所以我还不需要并行解决方案 我有常用的测试设置方法 SetUp TearDown and Test 当然 SetUp 会实例化一个新的ISe