Mon problème est que lorsque le nom est supposé être défini par le pilote dans la méthode FetchName, un message d'erreur indique que le pilote est null. Puis-je transmettre l'instance de pilote active d'une manière ou d'une autre pour continuer à récupérer des données?Comment passer la référence au pilote actif entre les classes
[TestFixture]
public class TestBase
{
protected IWebDriver driverChrome;
[SetUp]
public void Setup()
{
driverChrome = new ChromeDriver();
}
[TearDown]
public void CleanSite()
{
driverChrome.Quit();
}
}
Classe "Tests" où je crée toutes mes méthodes [test].
public void tests: Testbase
{
[Test]
public void testmethods()
{
string blabla = driverChrome.FindElement(By.id("dsd")).Text;
Reuse.FetchName(out string firstname, out string lastname);
Assert.isTrue(firstname.equals(lastname));
}
}
Une classe "Réutilisation" où j'ai des méthodes que les méthodes [test] utiliseront plusieurs fois.
public class Reuse: Testbase
{
[Test]
public void FetchName(out string firstname, out string lastname)
{
firstname = driverChrome.FindElement(By.XPath("/html/body/div[2]/table/tbody[last()]/tr/td[2]/div")).Text;
lastname = driverChrome.FindElement(By.XPath("/html/body/div[2]/table/tbody[last()]/tr/td[2]/div")).Text;
}
}
Vous pouvez vous faire driverChrome comme une variable globale ou écrire un setter getter pour obtenir l'instance du pilote. – Alok