Geb在什么时候构建页面的DOM树?

时间:2014-06-02 07:00:17

标签: dom groovy geb

我在与动态网页交互时遇到问题,即静态内容在一段时间后变得无效。通常,我第一次去页面时保存页面对象:

to StartPage
def startPage = at StartPage

稍后访问页面对象时,静态内容可能会变为无效。我想,当我第一次去页面时,Geb正在构建页面的DOM树。我是对的吗?!

如何触发刷新DOM树以便覆盖静态内容?

2 个答案:

答案 0 :(得分:0)

以下是一些导致上述问题的代码段:

<强> PkPortalWizardInitialPagePopup

static at = {
    waitFor { inputStartAssistant.displayed }
}

static content = {
    inputStartAssistant { $("input#BtnNext", nicetitle: "Assistent starten") }
}

def cancelAssistant() {
    waitForWithSleep { buttonCancel.enabled }
    buttonCancel.click()
}

def submitCancellingAssistant() {
    waitForWithSleep { buttonSubmit.enabled }
    buttonSubmit.click()
}

<强> PkPortalEpbListPage

static at = {
    waitFor { inboxLink.isDisplayed() }
}

static content = {
    inboxLink { $("a.ctxLink", text: "Posteingang") }
}

测试代码

    def portalAssistant = at PkPortalWizardInitialPagePopup
    portalAssistant.cancelAssistant()
    portalAssistant.submitCancellingAssistant()
    def portalEpostLetterListPage = at PkPortalEpbListPage --> ERROR

错误: geb.waiting.WaitTimeoutException:条件未在60.0秒内传递(因异常而失败)

取消登录向导弹出窗口会将用户定向到PkPortalEpbListPage,但是at检查器会导致上述错误。

答案 1 :(得分:0)

对Geb导航仪进行微小修改可以解决问题:

inboxLink { $("a.ctxLink", text: contains("Posteingang")) }

不知道为什么因为文本不包含任何空格。 Geb魔术?