使用Baseclass.Contrib.SpecFlow.Selenium.NUnit在@Browser:Firefox

本文关键字:@Browser Firefox NUnit Selenium Baseclass Contrib SpecFlow 使用 | 更新日期: 2024-10-20 08:25:31

我目前正在使用Baseclass.Contrib.SpecFlow@Browser标记在多个浏览器中运行Specflow测试。

我的测试:

@浏览器:IE

@浏览器:Chrome

@浏览器:Firefox

场景大纲:添加两个数字

在安装了这些浏览器驱动程序后,这与@Browser:Chrome@Browser:IE配合使用非常好。不幸的是,它不适用于@Browser:Firefox,我认为它应该这样做,因为Selenium默认具有Firefox驱动程序。

我收到的错误消息是来自Autofac.Core.DependencyResolutionException: 的异常

调用类型"FirefoxDriver"的构造函数"Void.ctor()"时引发异常。--->系统找不到指定的文件

在挖掘异常消息后,我找不到它尝试查找但未能找到的文件。

我尝试安装一个外部Firefox浏览器驱动程序(Marionette),但也不起作用。

我的配置:

<autofac>
    <components>
        <component name="IE" type="OpenQA.Selenium.IE.InternetExplorerDriver, WebDriver" service="OpenQA.Selenium.IWebDriver, WebDriver" instance-scope="per-dependency">
        </component>
        <component name="Chrome" type="OpenQA.Selenium.Chrome.ChromeDriver, WebDriver" service="OpenQA.Selenium.IWebDriver, WebDriver" instance-scope="per-dependency">
        </component>
        <component name="Firefox" type="OpenQA.Selenium.Firefox.FirefoxDriver, WebDriver" service="OpenQA.Selenium.IWebDriver, WebDriver" instance-scope="per-dependency">
        </component>
        <!-- Example of using an injected RemoteDriver:
        <component
            name="IE"
            type="Baseclass.Contrib.SpecFlow.Selenium.NUnit.RemoteWebDriver, Baseclass.Contrib.SpecFlow.Selenium.NUnit.SpecFlowPlugin"
            service="OpenQA.Selenium.IWebDriver, WebDriver"
            instance-scope="per-dependency">
            <parameters>
                <parameter name="url" value="http://127.0.0.1:4444/wd/hub" />
                <parameter name="browser" value="InternetExplorer">
                </parameter>
            </parameters>
        </component>
        -->
      </components>

你知道怎么做吗?

关于使用Baseclass.Contrib.SpecFlow:的其他讨论很少

  • 使用Browser.Current调用C#中具有Baseclass.Contrib.Specflow的浏览器

  • 使用Webinator+Selenium、SpecFlow和NUnit 的多个浏览器测试

  • 用于多浏览器测试的具有Specflow的DataSource属性

使用Baseclass.Contrib.SpecFlow.Selenium.NUnit在@Browser:Firefox

我今天也遇到了同样的问题。我更新了Selenium WebDriver NuGet包,现在它对我有效。试试吧。也许它也能帮你解决问题。

我重写了Baseclass.Contrib.SpecFlow.Selenium.NUnit以获得2.1支持。

新的代码库,@ignore标记支持nunit3和几个测试服务,如BrowserStack,SauceLabs,TestingBot。查看

我创建了一个新的SpecFlow插件(灵感来自Baseclass.Contrib.SpecFlow.Selenium.NUnit-感谢unickq)。

详细信息可以在下面找到,该插件旨在通过使用标签(如:)来针对不同的变体(如浏览器,但可灵活使用)

@Browser:Chrome
@Browser:IE
Scenario: A scenario title

这支持SpecFlow 2.4和v3,也就是核心。它还支持MsTest、NUnit和xUnit。

https://github.com/TotalTest/SpecFlow.Contrib.Variants