我正在寻找推荐/最好的方法来使 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(使用前将#替换为@)