【发布时间】:2019-09-30 12:01:39
【问题描述】:
我有一节课:
public class PageFactoryInitialization {
public MainPageObjectAction mainPageObjectAction =
PageFactory.initElements(
Driver.webDriver,
MainPageObjectAction.class
);
}
我在MainPageObjectAction 中拥有所有@FindBy 元素,并且我拥有扩展PageFactoryInitialization 的这个类。
@RequiredArgsConstructor
public class MainPageObjectStep extends PageFactoryInitialization {
@Step("Enter page")
public void doAction() {
Driver.webDriver.get("https://staging1.ogrcrew.com");
Driver.webDriver.manage().window().fullscreen();
Driver.webDriver.manage().timeouts().implicitlyWait(
10,
TimeUnit.SECONDS
);
mainPageObjectAction.menuMainNavigation.click();
mainPageObjectAction.acceptCookies.click();
mainPageObjectAction.menuMainNavigation.click();
}
...
如何避免
public MainPageObjectAction mainPageObjectAction =
PageFactory.initElements(Driver.webDriver, MainPageObjectAction.class)
对于页面对象建模的每个类。
我尝试了各种方法,但遇到 NullPointerException 错误。
【问题讨论】:
-
你尝试过构造方法吗?您可以在创建新页面对象时初始化父类( PageFactoryInitialization )。
-
因为这些方法在@Step + void 方法中不知何故这是行不通的;在不扩展课程的情况下,我没有发现任何可能性
标签: java selenium webdriver automated-tests