如何用Geb Spock Appium实现页面对象机制

How to achieve page object mechanism with Geb Spock Appium

我有效地将 geb-spock 用于我们的 Web 应用程序。我是 geb spock appium 的新手,并且在 Appium 中努力使用 PageObject 机制,因为我已经轻松地实现了 Web 应用程序。

我能够成功启动该应用程序并能够使用以下代码对应用程序执行一些操作。

@Stepwise
class TC_001_DictionaryApp_Spec extends GebReportingSpec {

    def "Step 1:Go to the login page of the WU"() {
        when: "User is on Dictionary App"
        // at AppHomePage

        and: " User enters the value in Searh box"
        /*page.textboxSearch.value("Obsess")*/
        driver.findElement(By.id("com.dictionary.mr:id/input_text_view")).sendKeys("Obsess")

        and: "Press the Enter"

        then: "Word should be searched"
    }
}

但是,如果我尝试使用 atto 块,则它会失败。 (如果你取消注释上面的测试用例中的代码,它就不起作用)下面是我的页面对象 class

class AppHomePage extends Page {
    static at = {}

    static content ={
        textboxSearch (wait:true) { driver.findElement(By.id("com.dictionary.mr:id/input_text_view")) }
    }
}

能否请您指导我如何使用 geb spock appium 实现页面对象机制。

谢谢!

您尚未在 "at" 块中添加断言,因此它会失败。

class AppHomePage extends Page {

    static at = { title == "my title assertion"}

    static content ={
        textboxSearch (wait:true) { driver.findElement(By.id("com.dictionary.mr:id/input_text_view")) }
    }
}