【问题标题】:AppiumFieldDecorator method is giving error with latest serenity versionAppiumFieldDecorator 方法在最新的 serenity 版本中出现错误
【发布时间】:2018-07-12 09:29:34
【问题描述】:

我是 Serenity Appium 的新手。我正在尝试使用页面对象机制来实现 Serenity-Cucumber-Appium。为了实现页面对象,我遇到以下方法需要在基本页面对象类中。

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 有效地使用页面对象机制。

【问题讨论】:

    标签: java appium serenity-bdd cucumber-serenity


    【解决方案1】:

    幸运的是,我能够解决这个问题。使用最新的 Serenity 版本需要修改页面对象类如下:

    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 运行 Selenium 测试和这些 appium 测试?两个测试一起进行。
    • 我还没有尝试过。我需要在这方面工作
    猜你喜欢
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2019-02-06
    • 1970-01-01
    • 2015-10-09
    • 2021-11-26
    • 1970-01-01
    相关资源
    最近更新 更多