如果我在所有测试类中创建Web驱动程序实例,或者有任何方法可以创建它一次并在测试项目中的任何地方使用,这样可以吗?

时间:2016-04-22 08:54:39

标签: selenium selenium-webdriver webdriver nunit testng

我通常在我的所有测试类中通过我的项目创建一个Web驱动程序实例,然后使用Firefox驱动程序初始化它。这是正常的自动化实践还是我只创建一次并在我的项目中随处使用它。如果第二个是'应该是'然后如何实现它。

我在一个项目中使用带有Java的Web驱动程序,而在另一个项目中使用C#。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可以在Base Calss中声明您的驱动程序,如下所示:

public class BaseClass {

    static WebDriver driver;

    @BeforeSuite
    public void setup() throws InterruptedException, IOException {

        driver = new FirefoxDriver();

        driver.manage().window().maximize();

        Properties obj = new Properties();

        FileInputStream objfile = new FileInputStream(
                System.getProperty("user.dir")
                        + "\\src\\com\\provider\\Object.Properties");
        obj.load(objfile);

        driver.get(obj.getProperty("URL"));
    }
}

然后你可以扩展你的基类,如下所示你不需要在你创建的每个类中声明你的驱动程序:

public class ProApp extends BaseClass{

    @Test(priority=1)
    public void clickLoginLink() throws InterruptedException, IOException {

    Properties obj = new Properties();

    FileInputStream objfile = new FileInputStream(System.getProperty("user.dir") +"\\src\\com\\provider\\Object.Properties");
    obj.load(objfile);

    driver.findElement(By.xpath(obj.getProperty("ClickOnLoginLink"))).click();
    Thread.sleep(1000);

    }
}

答案 1 :(得分:0)

您可以在超类中创建一个webdriver实例,并在需要时在子类(测试类)中使用它。因为这将节省为每个类初始化webdriver的时间。