我有一堂课:
public class PageFactoryInitialization {
public MainPageObjectAction mainPageObjectAction =
PageFactory.initElements(
Driver.webDriver,
MainPageObjectAction.class
);
}
我在
@FindBy
中具有所有MainPageObjectAction
元素,并且具有扩展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错误。
最佳答案
public MainPageObjectAction mainPageObjectAction1;
public PageFactoryInitialization(MainPageObjectAction mainPageObjectAction) {
mainPageObjectAction = PageFactory.initElements(Driver.webDriver, MainPageObjectAction.class);
}
@Before
public void beforeTest() {
login = PageFactory.initElements(driver, LoginPage.class );
}
公共无效initElements(){
MainPageObjectAction mainPageObjectAction = PageFactory.initElements(Driver.webDriver,MainPageObjectAction.class);
}
List<Class> init = new ArrayList<>();
init.add(MainPageObjectAction.class);
PageFactory.initElements(Driver.webDriver, init);
@Override
public <T> MainPageObjectAction getPage(Class<T> page) {
return PageFactory.initElements(Driver.webDriver, MainPageObjectAction.class);
}
public static <T> T getPage1(Class<T> page) {
return PageFactory.initElements(Driver.webDriver, page);
}
到目前为止,这是我尝试过的。 NullPointerException没有任何作用,只有扩展类才起作用