在每个班级中实例化Selenium webdriver?

时间:2014-12-11 12:37:30

标签: java selenium

这不是特别是Selenium问题,但可能更多是我缺乏Java知识。我正在编写Selenium测试并尝试以面向对象的方式进行测试。因此,每个类都在构造函数中实例化当前的webdriver。这意味着每个类都具有相同的构造函数。我应该使用不同的方法还是更“Java-esque”的解决方案?

public class Foo {
WebDriver driver;

    public Foo(WebDriver driver){
        this.driver = driver;
    }

    public static String getFoo(){
        String newFoo = "example";
    }
}

然后,如果我从另一个类调用Foo,我必须将实例化的驱动程序传递给它:

public class FooB {

    public static void doSomething(){
        Foo foo = new Foo(driver);
        foo.getFoo();
    }
}

1 个答案:

答案 0 :(得分:0)

是的,您应该将基类继承到包含webdriver的所有其他类。而且,哦,不要忘记使用

PageFactory.initElements()

启动所有页面元素。 而且,如果我理解你的问题,那么Page Object Model就是你应该采取的方法。根据您的需要,实现可能会有所不同。可以找到关于如何实现这一点的最佳示例之一here