靜態屬性 at
這個屬性存在的目的,就是定義Page的檢查條件,確認是否為期望的那一頁。
常見的判斷
* title
class GebHomePage extends Page {
static url = "http://www.gebish.org/"
static at = { title == "Geb - Very Groovy Browser Automation" }
}
title是哪裡來的? Page Object API 裡面有一個getTitle(),那為什麼是用title,而不是getTitle(),您可以去了解一下JavaBean的由來,Groovy語法上比Java精簡,可以直接寫title,就可以了。
為什麼我要講這麼基本的東西?因為我希望我的文章閱讀門檻不要太高,另外我覺得看懂API文件非常重要,以前在學校老師曾提過一次,但當時我並沒有聽懂,反而是入行後,自己才慢慢懂得,覺得很可惜。
* 元素
import geb.*
class GebHomePage extends Page {
static url = "http://www.gebish.org/"
static at = { $('h1').last().text() == "Build Status" }
}
* WaitFor
import geb.*
class GebHomePage extends Page {
static url = "http://www.gebish.org/"
static at = { waitFor { title.endsWith("Groovy Browser Automation") } }
}
題外話,真的非常希望學校的老師可以在學生畢業前,教這幾項:
* 看API文件
* 寫log
* IDE debug
* 寫test case
是非常受用的東西啊