2017-11-11 35 views
0

Specflowプロジェクトでは、私のフィーチャーファイルで2つのシナリオを定義しました。しかし私のプログラムを実行すると、ブラウザは最初のシナリオの後に閉じます。リモートサーバーとの接続がないため、テストに失敗します。Specflowで最初のシナリオを完了した後にブラウザが終了する

どうすれば解決できますか?

Feature: Check functionality of dashboard 

@SmokeTest 
@Browser:Chrome 
Scenario: Check dashboard page is loaded 
    Given I have navigated to application 
    And I typed emailid and password 
    | Email   | Password | 
    | [email protected] | test1234 | 
    When I clicked login button 
    Then I should see dashboard 

Scenario: Check trading partners page is loaded 
    Given I am on Trading Partner page 
    When I click on trading partners link 
    Then I should see trading partners page 

後、私のPackage.config

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="Autofac" version="3.1.1" targetFramework="net461" /> 
    <package id="Autofac.Configuration" version="3.1.0" targetFramework="net461" /> 
    <package id="Baseclass.Contrib.SpecFlow.Selenium.NUnit" version="1.3.1" targetFramework="net461" /> 
    <package id="ExcelDataReader" version="2.1.2.3" targetFramework="net461" /> 
    <package id="ImpromptuInterface" version="5.6.2" targetFramework="net461" /> 
    <package id="MSTest.TestAdapter" version="1.1.18" targetFramework="net461" /> 
    <package id="MSTest.TestFramework" version="1.1.18" targetFramework="net461" /> 
    <package id="NUnit" version="2.6.0.12054" targetFramework="net461" /> 
    <package id="NUnitTestAdapter.WithFramework" version="2.0.0" targetFramework="net461" /> 
    <package id="Selenium.Chrome.WebDriver" version="2.30" targetFramework="net461" /> 
    <package id="Selenium.Support" version="3.4.0" targetFramework="net461" /> 
    <package id="Selenium.WebDriver" version="3.4.0" targetFramework="net461" /> 
    <package id="SharpZipLib" version="0.86.0" targetFramework="net461" /> 
    <package id="SpecFlow" version="1.9.0" targetFramework="net461" /> 
    <package id="SpecFlow.Assist.Dynamic" version="1.0.2" targetFramework="net461" /> 
</packages> 

ある関連のステップファイルを参照してください。この問題を解決する

namespace DX2Functional.Steps 
{ 
    [Binding] 
    class DashboardSteps 
    { 


     [Given(@"I have navigated to application")] 
     public void GivenIHaveNavigatedToLoginUrl() 
     { 
      Browser.Current.Navigate().GoToUrl(ConfigurationManager.AppSettings["seleniumBaseUrl"]); 
      CommonMethods.driver = Browser.Current; 
      PropertiesCollection.currentPage = new Login(); 
     } 

     [Given(@"I typed emailid and password")] 
     public void GivenITypedEmailidAndPassword(Table table) 
     { 
      dynamic tableDetails = table.CreateDynamicInstance(); 
      string email = tableDetails.Email; 
      Console.Write("Email is " + email); 
      string passowrd = tableDetails.Password; 
      Console.Write("password is " + passowrd); 

      PropertiesCollection.currentPage.As<Login>().enterUerEmailAndPassword(email, passowrd); 
     } 

     [When(@"I clicked login button")] 
     public void WhenIClickedLoginButton() 
     { 
      PropertiesCollection.currentPage = PropertiesCollection.currentPage.As<Login>().clickLoginButton(); 
     } 

     [Then(@"I should see dashboard")] 
     public void ThenIShouldSeeDashboard() 
     { 
      PropertiesCollection.currentPage.As<Dashboard>().IsloadedIn(); 
     } 


     [Given(@"I am on Trading Partner page")] 
     public void GivenIamOnTradingPartnerPage() 
     { 
      PropertiesCollection.currentPage.As<Dashboard>().IsloadedIn(); 
     } 

     [When(@"I click on trading partners link")] 
     public void WhenIClickOnTradingPartnersLink() 
     { 
      PropertiesCollection.currentPage.As<Dashboard>().clickTradingPrtnersLink(); 
     } 

     [Then(@"I should see trading partners page")] 
     public void ThenIShouldSeeTradingPartnersPage() 
     { 
      PropertiesCollection.currentPage.As<TradingPartners>().IsTPListLoaded(); 
     } 

    } 
} 
+0

あなたはAfterScenarioメソッドとフックのファイルを持っていますか?または、終了する場所、またはWebdriverを終了する場所でコードを共有できますか? –

+0

フックファイルがありません。また、私はブラウザを明示的に閉じないでください –

+0

ブラウザを自動化するライブラリはどれですか?あなたはpackage.configを投稿できますか?そして、あなたはこれらのシナリオで持っているステップのバインディングコードを共有できますか? –

答えて

0

一つの方法は、ユーザーにログインするあなたの機能ファイルの最初の部分のための代わりにScenarioBackgroundを使用することです。例えば

Feature: Check functionality of dashboard 

@SmokeTest 
@Browser:Chrome 
Background: 
    Given I have navigated to application 
    And I typed emailid and password 
    | Email   | Password | 
    | [email protected] | test1234 | 
    When I clicked login button 

Scenario: Check dashboard page is loaded  
    Then I should see dashboard 

Scenario: Check trading partners page is loaded 
    Given I am on Trading Partner page 
    When I click on trading partners link 
    Then I should see trading partners page 
関連する問題