AppiumFieldDecorator 方法在使用最新的宁静版本时出错
AppiumFieldDecorator method is giving error with latest serenity version
我是 Serenity Appium 的新手。我正在尝试使用页面对象机制实现 Serenity-Cucumber-Appium。为了实现页面对象,我遇到了下面的方法,需要在基础页面对象中包含 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;
}
});
}
}
当我使用以下版本的 Serenity 和 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>
但是,如果我使用以下版本:
<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>
然后它在 in
方法处给我编译时错误,如下所示:
Cannot resolve method 'in(java.util.concurrent.TimeUnit)
你能帮帮我吗,我该如何克服这个问题并有效地为 Appium Serenity 使用页面对象机制。
幸运的是我能够解决这个问题。使用最新的 Serenity 版本需要修改页面对象 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);
return true;
}
});
}
}
还要获得正确的 Serenity 报告,请使用命令 mvn verify
命令执行测试。
感谢支持!
我是 Serenity Appium 的新手。我正在尝试使用页面对象机制实现 Serenity-Cucumber-Appium。为了实现页面对象,我遇到了下面的方法,需要在基础页面对象中包含 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;
}
});
}
}
当我使用以下版本的 Serenity 和 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>
但是,如果我使用以下版本:
<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>
然后它在 in
方法处给我编译时错误,如下所示:
Cannot resolve method 'in(java.util.concurrent.TimeUnit)
你能帮帮我吗,我该如何克服这个问题并有效地为 Appium Serenity 使用页面对象机制。
幸运的是我能够解决这个问题。使用最新的 Serenity 版本需要修改页面对象 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);
return true;
}
});
}
}
还要获得正确的 Serenity 报告,请使用命令 mvn verify
命令执行测试。
感谢支持!