2016-01-11 35 views
0

我對Geb很新,但是我面臨着一個奇怪的問題,那就是文檔似乎沒有解決。我有一個非常簡單的測試方案:以管理員身份登錄,打開應用程序,確認主頁上顯示「應用」按鈕。然後關閉應用程序並確認該按鈕已從主頁上消失。我可以成功地手動執行這個測試,並且服務器端沒有任何東西(緩存明智)阻止成功,但是當我通過Gradle運行測試時失敗,因爲按鈕仍然在主頁上顯示'close'後,測試。請注意,測試還會驗證配置是否保存了適當的值。Geb測試DOM元素存在,然後在下一頁刪除加載

這裏是我的測試代碼:

def "can open applications"(){ 
    when: 
    to ManageConfigPage 

    and: 
    configFormModule.toggleApplications(true) 

    then: 
    at ManageConfigPage 
    assert $('#messages').text() == "Config successfully updated" 
    assert $('td', text: 'config.application_closed').closest('tr').find('input').value() == "0" 
    then: 
    to HomePage 
    assert applyButton 
} 


def "can close applications"(){ 
    when: 
    to ManageConfigPage 

    and: 
    configFormModule.toggleApplications(false) 

    then: 
    at ManageConfigPage 
    assert $('#messages').text() == "Config successfully updated" 
    assert $('td', text: 'config.application_closed').closest('tr').find('input').value() == "1" 
    then: 
    to HomePage 
    assert !applyButton 
} 

這裏的applyButton內容定義:

applyButton(cache: false, required: false){ $('#apply_button') } 

我直接在測試,而不是內容定義中使用的選擇也嘗試和沒有工作無論是。

那麼這裏發生了什麼?主頁是否被整體緩存?如果是這樣,我該如何防止或刷新它?這看起來像Geb 101,但手冊並沒有真正解決這個問題。

編輯:添加的完整性測試結果:

條件不滿意:

applyButton || | applyButton - SimplePageContent(業主:首頁,ARGS:[],值:空) 假

at AdminSpec.can close applications(AdminSpec.groovy:59) 

回答

0

是不包含在HTML按鈕元素,或者簡單地隱藏?如果它隱藏,則需要檢查它是否不顯示:

!applyButton.displayed 
+0

我在移動到該頁面之前添加了一個睡眠(5000),並且它按預期工作。這不應該是必要的,但它有效。 –

相關問題