iT邦幫忙

DAY 10
0

初探網站自動化測試系列 第 10

Content DSL (Geb Day 10)

  • 分享至 

  • xImage
  •  

前面Page Object pattern有提到,由三個區塊所組成:at、url、content DSL,content DSL是比較複雜的部分,在此額外補充說明。

Content DSL
* 範例一

import geb.*

class LoginPage extends Page {

    static content = {
        // «名稱» { «定義» }
        emailInput { $("input[name=account]") }
    }
}





Browser.drive {
    to LoginPage
    emailInput.value('aaa@bbb.com')
}

* 範例二

import geb.*

class FrontPage extends Page {

    static content = {
        menu { menuLinkName -> $('div', id: menuLinkName) }
    }
}





Browser.drive {
    to FrontPage
    assert menu("menu-about").text() == "About Me"
    assert menu("menu-faq").text() == "FAQ"
}

Template Options

除了使用預設參數,也可選擇自定參數。

可自定的參數有
* required
* cache
* to
* wait
* page

範例

import geb.*

class FrontPage extends Page {

    static content = {
        // «名稱»(«參數») { «定義» }
        loginLink(required: false) { $('.login') }
        logoutLink(required: false) { $('.logout') }
    }
}

required預設true

當required為true,但loginLink不存在時,下面的範例會拋出 RequiredPageContentNotPresent ,但若required為false,則不會拋出exception。


上一篇
Frame API (Geb Day 9)
下一篇
Page Url (Geb Day 11)
系列文
初探網站自動化測試30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言