I am new to Serenity Appium. I am trying to achieve Serenity-Cucumber-Appium with page object mechanism. To achieve page object I came across below method need to have in a base Page object class.
public class MobilePageObject extends PageObject {
public MobilePageObject(final WebDriver driver) {
super(driver, new Predicate<PageObject>() {
@Override
public boolean apply(PageObject page) {
PageFactory
.initElements(new AppiumFieldDecorator(((WebDriverFacade) page.getDriver()).getProxiedDriver(),
page.getImplicitWaitTimeout().in(TimeUnit.SECONDS), TimeUnit.SECONDS), page);
return true;
}
});
}
}
This is working fine when I am using below version of Serenity and Cucumber.
<serenity.version>1.7.4</serenity.version>
<serenity.cucumber.version>1.6.3</serenity.cucumber.version>
<serenity.maven.version>1.7.4</serenity.maven.version>
However, if I am using below versions :
<serenity.version>1.9.20</serenity.version>
<serenity.cucumber.version>1.9.8</serenity.cucumber.version>
<serenity.maven.version>1.9.20</serenity.maven.version>
then it's giving me compile time error at in
method as :
Cannot resolve method 'in(java.util.concurrent.TimeUnit)
Can you please help me, how I can overcome this and use the page object mechanism effectively for Appium Serenity.
Fortunately I am able to resolve this issue. With the latest Serenity version need to modify the page object class as below :
public class MobilePageObject extends PageObject {
public MobilePageObject(final WebDriver driver) {
super(driver, new Predicate<PageObject>() {
@Override
public boolean apply(PageObject page) {
PageFactory.initElements(new AppiumFieldDecorator(((WebDriverFacade) page.getDriver()).getProxiedDriver()), page);
return true;
}
});
}
}
Also to get the proper Serenity reports use the command mvn verify
command to execute the test.
Thanks for support!