这不是特别是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();
}
}
答案 0 :(得分:0)
是的,您应该将基类继承到包含webdriver
的所有其他类。而且,哦,不要忘记使用
PageFactory.initElements()
启动所有页面元素。 而且,如果我理解你的问题,那么Page Object Model就是你应该采取的方法。根据您的需要,实现可能会有所不同。可以找到关于如何实现这一点的最佳示例之一here