Надеюсь, что этот день вас ждет.Невозможно передать объект WebDriver заводскому методу в TestNG
Я все еще чувствую себя комфортно с Selenium и TestNG (и Java вообще), и я просто попадаю в некоторые из более интересных вещей. Я пытаюсь динамически создавать тесты с использованием фабрики, но я не могу заставить фабрику принять переменную, которая указывает на объект WebDriver. Рассмотрите:
import org.testng.annotations.*;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class SimpleFactory {
WebDriver driver;
String hello = "hello";
@BeforeSuite
public void setup(){
driver = new FirefoxDriver();
}
@AfterSuite
public void teardown(){
driver.quit();
}
@Factory
public Object[] factoryMethod(){
System.out.println(driver);
System.out.println(hello);
return new Object[] { new TestClass(), new TestClass() };
}
}
Это создает и создает объект «Драйвер» WebDriver, а также строку «привет». Когда он добирается до фабрики, объекты TestClass создаются и запускаются должным образом, и система выводит строку, на которую указывает переменная. Однако объект WebDriver кажется нулевым, и это то, что я получаю в консоли.
Это сложный вопрос, так как я не хочу, чтобы мои тесты были привязаны к определенному драйверу. Либо я не передаю объект должным образом, либо что-то про фабрики TestNG, которые я не понимаю. Любой вход будет оценен с большой благодарностью.