2015-05-02 4 views
1

Надеюсь, что этот день вас ждет.Невозможно передать объект 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, которые я не понимаю. Любой вход будет оценен с большой благодарностью.

ответ

0

Можете ли вы пытались с объявляя WebDriver как статические ..

статический драйвер WebDriver;

Спасибо, Мурали http://seleniumtrainer.com/

Смежные вопросы