【问题标题】:Using Baseclass.Contrib.SpecFlow.Selenium.NUnit to run tests in @Browser:Firefox (C#/Specflow)使用 Baseclass.Contrib.SpecFlow.Selenium.NUnit 在 @Browser:Firefox (C#/Specflow) 中运行测试
【发布时间】:2016-08-13 15:11:57
【问题描述】:

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

我的测试:

@Browser:IE

@Browser:Chrome

@Browser:火狐

场景大纲:添加两个数字
...

...

安装这些浏览器驱动程序后,这对@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 的其他讨论很少:

【问题讨论】:

    标签: c# selenium ui-automation specflow browser-automation


    【解决方案1】:

    我今天也遇到了同样的问题。我更新了 Selenium WebDriver NuGet 包,现在它适用于我。试试看。也许它也会为你解决它。

    【讨论】:

      【解决方案2】:

      I rewrote Baseclass.Contrib.SpecFlow.Selenium.NUnit for 2.1 support.

      新的代码库、对 nunit3 的 @ignore 标签支持以及 BrowserStack、SauceLabs、TestingBot 等多个测试服务。看看吧

      【讨论】:

        【解决方案3】:

        我创建了一个新的 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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-02
          • 1970-01-01
          • 1970-01-01
          • 2013-09-21
          • 2021-10-09
          • 1970-01-01
          相关资源
          最近更新 更多