Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在不同浏览器上有条件地执行自动化测试_C#_Selenium_Selenium Webdriver_Nunit_Multiple Browsers - Fatal编程技术网

C# 在不同浏览器上有条件地执行自动化测试

C# 在不同浏览器上有条件地执行自动化测试,c#,selenium,selenium-webdriver,nunit,multiple-browsers,C#,Selenium,Selenium Webdriver,Nunit,Multiple Browsers,我想在三个浏览器上执行一个测试,我想有条件地执行这个测试 示例-如果浏览器名为chrome,请访问Google.com并搜索selenium testing。如果浏览器名为Firefox,则搜索MongoDB。 这只是一个示例代码解决方案,但我需要在我的项目中实现这个概念 我正在使用Nunit的TestFixture属性在多个浏览器上执行测试,我想继续使用Nunit 这是我正在使用的代码示例 注意:由于测试夹具属性中的搜索参数,您可能无法在测试资源管理器中看到测试 using NUnit.Fr

我想在三个浏览器上执行一个测试,我想有条件地执行这个测试

示例-如果浏览器名为chrome,请访问Google.com并搜索selenium testing。如果浏览器名为Firefox,则搜索MongoDB。 这只是一个示例代码解决方案,但我需要在我的项目中实现这个概念

我正在使用Nunit的TestFixture属性在多个浏览器上执行测试,我想继续使用Nunit

这是我正在使用的代码示例

注意:由于测试夹具属性中的搜索参数,您可能无法在测试资源管理器中看到测试

 using NUnit.Framework;
 using OpenQA.Selenium;
 using OpenQA.Selenium.Firefox;
 using OpenQA.Selenium.IE;
 using OpenQA.Selenium.Chrome;
 using NUnit;


namespace MultipleBrowserTesting
{
   [TestFixture(typeof(FirefoxDriver), "MongoDB")]
   [TestFixture(typeof(ChromeDriver), "Selenium Testing")]
   [TestFixture(typeof(InternetExplorerDriver), "ElasticSearch")]

    public class BlogTest<TWebDriver> where TWebDriver : IWebDriver, new()
    {
        private IWebDriver _driver;

    [Test]
    public void Can_Visit_Google(string searchString)
    {
        _driver = new TWebDriver();

        // Navigate
        _driver.Manage().Window.Maximize();

        _driver.Navigate().GoToUrl("http://www.google.ie/");
        _driver.FindElement(By.Id("lst-ib")).SendKeys("searchString");
        _driver.FindElement(By.Name("btnK")).Click();

        FixtureTearDown();
    }

    [TestFixtureTearDown]
    public void FixtureTearDown()
    {
        // if (_driver != null) 
        _driver.Close();
    }
}
}
使用NUnit.Framework;
使用OpenQA.Selenium;
使用OpenQA.Selenium.Firefox;
使用OpenQA.Selenium.IE;
使用OpenQA.Selenium.Chrome;
使用NUnit;
名称空间多重代数测试
{
[TestFixture(typeof(FirefoxDriver),“MongoDB”)]
[测试夹具(类型(铬驱动),“硒测试”)]
[TestFixture(typeof(InternetExplorerDriver),“ElasticSearch”)]
公共类BlogTest,其中TWebDriver:IWebDriver,new()
{
专用IWebDriver\u驱动程序;
[测试]
public void可以访问谷歌(字符串搜索字符串)
{
_driver=新TWebDriver();
//导航
_driver.Manage().Window.Maximize();
_driver.Navigate().gotour(“http://www.google.ie/");
_driver.FindElement(By.Id(“lst ib”)).SendKeys(“searchString”);
_driver.FindElement(By.Name(“btnK”))。单击();
固定器拆卸();
}
[测试固定器拆卸]
public void FixtureTearDown()
{
//如果(_driver!=null)
_driver.Close();
}
}
}
我想我传递参数的方式不对。我已经提到了这个链接


我已经设法找到了我自己问题的答案。下面是这方面的示例代码。如果您有更好的解决方案,请发布。谢谢

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Chrome;
using NUnit;
using OpenQA.Selenium.Remote;


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();
        ICapabilities capabilities = ((RemoteWebDriver)_driver).Capabilities;
        string browser = capabilities.BrowserName;
        _driver.Manage().Window.Maximize();
        _driver.Navigate().GoToUrl("http://www.google.ie/");

        if (browser == "internet explorer")
        {
            _driver.FindElement(By.Id("lst-ib")).SendKeys("MongoDB");
        }
        else if (browser == "chrome")
        {
            _driver.FindElement(By.Id("lst-ib")).SendKeys("ElasticSearch");
        }
        else 
        {
            _driver.FindElement(By.Id("lst-ib")).SendKeys("Selenium");
        }
        _driver.FindElement(By.Name("btnG")).Click(); 
        FixtureTearDown();
    }

    [TestFixtureTearDown]
    public void FixtureTearDown()
    {
        _driver.Close();
    }
}
}
使用NUnit.Framework;
使用OpenQA.Selenium;
使用OpenQA.Selenium.Firefox;
使用OpenQA.Selenium.IE;
使用OpenQA.Selenium.Chrome;
使用NUnit;
使用OpenQA.Selenium.Remote;
名称空间多重代数测试
{
[测试夹具(类型(FirefoxDriver))]
[测试夹具(ChromeDriver类型))]
[测试夹具(类型(InternetExplorerDriver))]
公共类BlogTest,其中TWebDriver:IWebDriver,new()
{
专用IWebDriver\u驱动程序;
[测试]
公共空间可以访问谷歌()
{
_driver=新TWebDriver();
ICapabilities capabilities=((RemoteWebDriver)U驱动程序)。功能;
字符串browser=capabilities.BrowserName;
_driver.Manage().Window.Maximize();
_driver.Navigate().gotour(“http://www.google.ie/");
如果(浏览器==“internet explorer”)
{
_driver.FindElement(By.Id(“lst ib”)).SendKeys(“MongoDB”);
}
else if(浏览器==“chrome”)
{
_driver.FindElement(By.Id(“lst ib”)).SendKeys(“ElasticSearch”);
}
其他的
{
_driver.FindElement(By.Id(“lst ib”)).SendKeys(“Selenium”);
}
_driver.FindElement(By.Name(“btnG”))。单击();
固定器拆卸();
}
[测试固定器拆卸]
public void FixtureTearDown()
{
_driver.Close();
}
}
}

我已经设法找到了我自己问题的答案。下面是这方面的示例代码。如果您有更好的解决方案,请发布。谢谢

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Chrome;
using NUnit;
using OpenQA.Selenium.Remote;


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();
        ICapabilities capabilities = ((RemoteWebDriver)_driver).Capabilities;
        string browser = capabilities.BrowserName;
        _driver.Manage().Window.Maximize();
        _driver.Navigate().GoToUrl("http://www.google.ie/");

        if (browser == "internet explorer")
        {
            _driver.FindElement(By.Id("lst-ib")).SendKeys("MongoDB");
        }
        else if (browser == "chrome")
        {
            _driver.FindElement(By.Id("lst-ib")).SendKeys("ElasticSearch");
        }
        else 
        {
            _driver.FindElement(By.Id("lst-ib")).SendKeys("Selenium");
        }
        _driver.FindElement(By.Name("btnG")).Click(); 
        FixtureTearDown();
    }

    [TestFixtureTearDown]
    public void FixtureTearDown()
    {
        _driver.Close();
    }
}
}
使用NUnit.Framework;
使用OpenQA.Selenium;
使用OpenQA.Selenium.Firefox;
使用OpenQA.Selenium.IE;
使用OpenQA.Selenium.Chrome;
使用NUnit;
使用OpenQA.Selenium.Remote;
名称空间多重代数测试
{
[测试夹具(类型(FirefoxDriver))]
[测试夹具(ChromeDriver类型))]
[测试夹具(类型(InternetExplorerDriver))]
公共类BlogTest,其中TWebDriver:IWebDriver,new()
{
专用IWebDriver\u驱动程序;
[测试]
公共空间可以访问谷歌()
{
_driver=新TWebDriver();
ICapabilities capabilities=((RemoteWebDriver)U驱动程序)。功能;
字符串browser=capabilities.BrowserName;
_driver.Manage().Window.Maximize();
_driver.Navigate().gotour(“http://www.google.ie/");
如果(浏览器==“internet explorer”)
{
_driver.FindElement(By.Id(“lst ib”)).SendKeys(“MongoDB”);
}
else if(浏览器==“chrome”)
{
_driver.FindElement(By.Id(“lst ib”)).SendKeys(“ElasticSearch”);
}
其他的
{
_driver.FindElement(By.Id(“lst ib”)).SendKeys(“Selenium”);
}
_driver.FindElement(By.Name(“btnG”))。单击();
固定器拆卸();
}
[测试固定器拆卸]
public void FixtureTearDown()
{
_driver.Close();
}
}
}

一些技术人员可能会对if-else的用法产生争议,如果是,这里有另一个使用switch的解决方案

public void Can_Visit_Google()
    {
        _driver = new TWebDriver();
        ICapabilities capabilities = ((RemoteWebDriver)_driver).Capabilities;
        string browser = capabilities.BrowserName;
        _driver.Manage().Window.Maximize();
        _driver.Navigate().GoToUrl("http://www.google.ie/");

        switch (browser)
        { 
            case ("internet explorer"):
                _driver.FindElement(By.Id("lst-ib")).SendKeys("ElasticSearch");
                break;

            case ("chrome"):
                _driver.FindElement(By.Id("lst-ib")).SendKeys("MongoDB");
                break;

            case ("firefox"): 
                _driver.FindElement(By.Id("lst-ib")).SendKeys("Selenium");
                break;
        }
                _driver.FindElement(By.Name("btnG")).Click();
                FixtureTearDown();
    }

一些技术人员可能会争论if-else的用法if-else这里有另一个使用switch的解决方案

public void Can_Visit_Google()
    {
        _driver = new TWebDriver();
        ICapabilities capabilities = ((RemoteWebDriver)_driver).Capabilities;
        string browser = capabilities.BrowserName;
        _driver.Manage().Window.Maximize();
        _driver.Navigate().GoToUrl("http://www.google.ie/");

        switch (browser)
        { 
            case ("internet explorer"):
                _driver.FindElement(By.Id("lst-ib")).SendKeys("ElasticSearch");
                break;

            case ("chrome"):
                _driver.FindElement(By.Id("lst-ib")).SendKeys("MongoDB");
                break;

            case ("firefox"): 
                _driver.FindElement(By.Id("lst-ib")).SendKeys("Selenium");
                break;
        }
                _driver.FindElement(By.Name("btnG")).Click();
                FixtureTearDown();
    }

一些技术人员可能会就if-else-if-so的用法争论,这里是另一个使用switch的示例。一些技术人员可能会就if-else-if-so的用法争论,这里是另一个使用switch的示例。请务必接受答案,以便将问题标记为已回答。你不必现在就做。。。你可以等,只是请别忘了一两天后再来谢谢@JeffC提供的信息。我会的。干杯请务必接受答案,以便将问题标记为已回答。你不必现在就做。。。你可以等,只是请别忘了一两天后再来谢谢@JeffC提供的信息。我会的。干杯