i am running a serenity bdd framework (cucumber) using selenium java for web automation
The driver object is successfully loaded along with the page object for PageFactory.initElements but still i am getting InvocationTargetException
The selenium java version is 3.141.59
serenity version is 2.4.24
running on java8
code snippet Base class
public abstract class BasePageHelper {
public static WebDriver webDriver;
public static SeleniumWait seleniumWait;
public static WebDriverWait wait;
private T pageObject;
@SuppressWarnings("unchecked")
public BasePageHelper(WebDriver driver) {
pageObject = (T) PageFactory.initElements(driver, getPageObjectClass());
this.webDriver = driver;
this.wait = wait;
seleniumWait = new SeleniumWait(webDriver);
}
private Class<?> getPageObjectClass() {
if (!getClass().isAnnotationPresent(PageObject.class)) {
throw new RuntimeException("PageObject annotation must be present on a test helper class");
} else {
return getClass().getAnnotation(PageObject.class).pageObjectClass();
}
}
PageObject class
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface PageObject {
Class<?> pageObjectClass();
}