我想从下面知道哪个是创建 PageObject 类实例的更好选项(例如:LoginPage): -
1)在所有测试和步骤(任何需要的地方)中创建Pageobject类的实例?
LoginPage loginpage = PageFactory.initElements(webDriver, LoginPage.class);
(或)
2)使用静态方法创建一个类,以返回所请求的 PageObject 类的实例。在此方法中,在为请求的类创建新实例之前检查实例是否为null?
LoginPage loginpage = PageUtil.getPageObject("login");
请告知。
答案 0 :(得分:3)
有多种方法可以做到这一点。我想创建一个BaseClass()
并在那里实例化PageFactory.initElements(driver, this);
。查看我的gist。此外,公共存储库here
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;
/**
* Created by Saifur on 2/14/2015.
*/
public class BaseClass {
//global driver instance.
WebDriver driver;
//super constructor
public BaseClass(WebDriver _driver)
{
//assigning driver instance globally.
driver = _driver;
/*Instantiating all elements since this is super class
and inherited by each and every page object */
PageFactory.initElements(driver, this);
}
}