2015-06-30 46 views
1

我想問問您是否可以使用配置文件設置Firefox驅動程序 - 使用Specflow/Autofac。下面是App.config文件我的司機聲明:Specflow/Autofac - 如何使用配置文件設置Firefox驅動程序

<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> 
</autofac> 

在評論部分代碼,對駕駛員設定一些參數的例子,但我找不到的方式,設置配置文件。你知道該怎麼做嗎?或者也許有另一種方式直接從Specflow設置配置文件?

+0

我不認爲這個問題與specflow有什麼關係。您可能會使用specflow,但驅動程序實例的配置實際上是與selenium配合使用的,並且使用specflow或任何其他測試解決方案時的答案是相同的。一旦你知道如何正確配置硒(無論是通過代碼還是配置),如果你有關於如何使用Specflow正確調用該代碼的問題,那麼你應該問另一個問題。 –

+0

我的主要目標是始終使用特定的配置文件運行firefox驅動程序。我嘗試了很多選擇,但沒有一個適合我。你能解釋我如何使用Specflow做到這一點嗎? – Matt

+0

我不知道如何使用硒運行特定配置文件的firefox,但是如何做到這一點,它在specflow中是一樣的。 –

回答

0

後,我發現this page在網絡上快速搜索,其給出有關使用配置文件開始的一些信息:

ProfilesIni profile = new ProfilesIni();  
FirefoxProfile myprofile = profile.getProfile("profileToolsQA");  
WebDriver driver = new FirefoxDriver(myprofile) 

所以無論你在Specflow創建webdriver的實例現在,你可以用它來創建它用一個配置文件代替。我認爲該配置文件必須首先存在。

如果配置文件不存在,那麼也許你可以使用this answer中的信息來幫助你。

+0

問題是,我不知道把它放在哪裏,爲每個Firefox驅動程序實例配置文件。 有下specflow特徵一些像這樣的代碼: 公共虛擬無效ScenarioSetup(TechTalk.SpecFlow.ScenarioInfo scenarioInfo) { testRunner.OnScenarioStart(scenarioInfo);如果(this.driver!= null) ScenarioContext.Current.Add(「Driver」,this.driver);如果(this.container!= null) ScenarioContext.Current.Add(「Container」,this.container); } 但是沒有必要編輯特徵文件的每個.cs文件。 – Matt

+0

不知道在哪裏放什麼?代碼? –

+0

我也嘗試把(設置配置文件的代碼)放到BeforeScenario鉤子中,並用[「Driver」]鍵將新驅動程序分配給ScenarioContext,但在此級別上不能存在場景上下文。所以我想出了這個想法,它應該是app.config中的autofac的東西 – Matt

相關問題