2016-04-12 23 views
0

C#でセレンのWebドライバを初めて使用しています。私は、ログインを持っている私のスクリプトで20の試験方法&ログアウトし、それは私が下記の持っている順序で実行するために私が希望:TestInitialize&TestCleanupをC#で1回だけ実行する例はありますか?

Login (TestInitialize()) 
Test1 
Test2 
Test3 
. 
. 
Test20 
Logout (TestCleanup()) 

私はテストの初期化とクリーンアップでdriver.quitでログインを宣言しました。

MS Scriptフレームワークでは、ログイン&ログアウトは各テストメソッドごとに実行され、TestInitialize &クリーンアップが各メソッドに対して実行されないようにします。

これがNUnitや他のフレーム作業で可能な場合は、完全な情報を提供してください。

+0

最後にスクリプトの実行は、TestNGの – Ramesh

+0

とセレンwebdriverを同じように動作するはずです* *それはです*あなた*仕事ではなく、自由のためのお手伝いをしようとする人の仕事「のサンプルコードを提供してください」。通常、質問をしている人は、コード、現在の出力、および望ましい動作を掲示し、そこでそこから進みます。サイトへようこそ! :) – jDo

答えて

0

私はこれを似たような質問をする別の質問に掲載しました。私はあなたに "完全な作業コード"を提供するつもりはありませんが、ここでこれを達成する方法があります...

デフォルトのコンストラクタでIWebDriverのクラス変数を作成して初期化できます。次に、その特定のクラスのすべてのテストに対してそのドライバのインスタンスを使用します。最後のテストが実行された後にダイバーを終了するには、カウンターやインジケーターをクラス変数として保持し、TearDownメソッドでその変数をチェックし、最後のテストコールdriver.Disposeの値と一致する場合は)

セットアップメソッドでIWebDriverを初期化する場合は、IWebDriverのインスタンス(IWebDriver変数(フィールド)がnull)であるかどうかを確認するためにフィールドを使用します。それがヌルでなければ、何もしないでください。

+0

私は同じことをすることができません。私はここにあなたのコードを変更することができます自分のコードを追加していますか? マイコードを貼り付け: – Ramesh

+0

私は同じことをすることができません。誰でも私のコードを提供/更新できるので、さらに進めることができます。 – Ramesh

0
using System; 
using System.Collections.Generic; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 
using OpenQA.Selenium; 
using OpenQA.Selenium.Support.UI; 
using OpenQA.Selenium.Firefox; 
using System.Threading; 

// In This script TestInitialize & Test Cleanup executes for each TestMethod 
namespace Codify 
{ 
    [TestClass] 
    public class UnitTest2{ 
    IWebDriver driver = new FirefoxDriver(); 

     [TestInitialize()] 
      public void TestInitialize() 
      { 
       driver.Navigate().GoToUrl("https://www.google.co.in"); 
       Thread.Sleep(1000); 
      } 

     [TestMethod] 
     public void TestMethod1() 
     { 
      ICollection<IWebElement> links = driver.FindElements(By.TagName("a")); 
      foreach (var link in links) 
      { 
       Console.WriteLine(link.GetAttribute("text")); 
      } 
     } 

     [TestMethod] 
     public void TestMethod2() 
     { 
      driver.FindElement(By.Id("lst-ib")).SendKeys("Testing"); 
      Thread.Sleep(1000); 
      string str = driver.FindElement(By.XPath(".//*[@id='sbtc']/div[2]/div[2]/div[1]")).Text; 
      Console.WriteLine(str.Length); 
      string[] s = str.Split('\n'); 
      for (int i = 0; i < s.Length; i++) 
      { 
       Console.WriteLine(s[i]); 
      } 
     } 

     [TestCleanup()] 
     public void testcleanp() 
     { 
      driver.Quit(); 
     } 

    } 
} 
+0

私のコードを解決策 – Ramesh

+0

で更新してください。誰かが私のコードを提供/更新できるので、さらに進めることができます – Ramesh

関連する問題