2016-04-12 2 views
0

Ich bin neu bei Selen-Web-Treiber mit C#. Ich habe mit, 20 Testmethoden & Logout in meinem Skript und ich möchte es in der Reihenfolge ausgeführt werden, ich habe unter:Gibt es ein Beispiel, um TestInitialize & TestCleanup nur einmal in C# für Selen-Webdriver auszuführen

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

I erklärte Anmeldung in Test initialisieren und driver.quit in Cleanup.

Aber in MS Script Rahmen arbeiten Login & Logout werden für jede Testmethode ausgeführt und ich möchte nicht TestInitialize & Cleanup für jede Methode ausführen.

Wenn dies mit NUnit oder anderen Rahmenarbeiten möglich ist, geben Sie bitte vollständige Informationen an.

+0

schließlich die Ausführung Skript sollte wie Selen WebDriver mit TestNG – Ramesh

+0

* arbeiten „Bitte geben Sie Beispielcode“ * Das ist * Ihre * Job, nicht die Arbeit derer, die versuchen, Sie kostenlos zu helfen. Normalerweise wird die Person, die die Frage stellt, ihren Code, die aktuelle Ausgabe und das gewünschte Verhalten veröffentlichen und dann gehen wir von dort aus. Willkommen auf der Seite! :) – jDo

Antwort

0

Ich postete dies in einer anderen Frage, die etwas ähnliches fragte. Ich werde Ihnen nicht "vollständigen Arbeitscode" zur Verfügung stellen, aber hier ist, wie Sie das erreichen konnten ...

Sie könnten eine Klassenvariable von IWebDriver erstellen und in einem Standardkonstruktor initialisieren. Verwenden Sie dann diese Instanz des Treibers für alle Ihre Tests in dieser bestimmten Klasse. Um den Taucher nach dem letzten Test zu verlassen, können Sie eine Art Zähler oder Indikator als Klassenvariable behalten und dann in der TearDown-Methode diese Variable überprüfen und sie mit dem Wert für den letzten Testanruftreiber vergleichen. Dispose ()

Wenn Sie es vorziehen, IWebDriver in einer Setup-Methode zu initialisieren, verwenden Sie weiterhin ein Feld, um Ihre Instanz von IWebDriver zu halten, und überprüfen Sie in der Setup-Methode, ob die Variable VariableWebDriver (Feld) null ist. Wenn es nicht null ist, dann tu nichts.

+0

Ich bin nicht in der Lage, das gleiche zu tun. Ich füge meinen Code hier hinzu. Kannst du den Code ändern? Mein Code eingefügt unter: – Ramesh

+0

Ich bin nicht in der Lage, das gleiche zu tun. Kann jemand meinen Code zur Verfügung stellen/updaten, damit ich fortfahren kann. – 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

Bitte aktualisieren Sie meinen Code mit der Lösung – Ramesh

+0

Kann jemand meinen Code zur Verfügung stellen/updaten, damit ich weitermachen kann – Ramesh

Verwandte Themen