2016-08-24 58 views
0

我最近在使用Codeception來創建驗收測試時扮演了一個新角色。由於這對我來說是一種學習經驗,我一直在Stack Overflow上拋出很多問題。感謝您所有的幫助!但這是我最新的困境。首先,我正在進行考試。首先,登錄到一個網站,運行一系列測試,然後登出:如何在代碼驗收測試中打破持久登錄?

$I->am('user'); 
$I->amOnPage('/'); 
$I->wait('2'); 
$I->amOnPage('?realm=ab-cd'); 
$I->amGoingTo('Login to website'); 
$I->fillField('username', 'REMOVED'); 
$I->fillField('password', 'REMOVED'); 
$I->click('Sign In'); 
$I->expect('Signing In'); 
// Should be on dashboard 
$I->wait('5'); 
$I->see('Dashboard'); 
$I->see('Messages'); 
$I->see('Assignments'); 
$I->see('Reports'); 
$I->see('Help'); 
$I->click('Sign Out'); 
$I->expect('Signed Out'); 
$I->wait('5'); 
$I->makeScreenshot('Screenshot'); 
$I->seeCurrentUrlEquals('/'); 

截屏需要的是,就好像它永遠不會登出。我已經嘗試同時點擊退出按鈕和使用id(如上所述)來選擇退出按鈕。這裏的問題是,我有多個測試正在運行,並且當它沒有註銷時,它會使我的下一次測試失敗。有沒有辦法強制簽署用戶進行cest測試? 我在幾年前的文章中看到過這樣的問題,但看起來像自從已被修復。我嘗試了這些文章的所有建議。有什麼想法嗎?

,其提供註冊出有問題的鏈接:

<button id="log-out" class="red-btn">Sign Out</button> 

UPDATE:將所述線後$ I-> seeCurrentUrlEquals( '/'); 發生錯誤:

[Facebook\WebDriver\Exception\UnexpectedAlertOpenException] Unexpected modal 
dialog (text: Fallback login. Enter password): Fallback login. Enter 
password 
+0

我忘了提及,我正在使用BrowserStack來運行測試。 – KevinE

回答

0

爲什麼要註銷/註銷後?
不應該註銷自動帶你到那裏嗎?

您的測試沒有檢查它是否成功註銷。
Expect方法只是一個評論。
使用seeseeCurrentUrlEquals驗證註銷是否成功。

+0

我使用$ I-> amOnPage('/')嘗試強制它回到其初始url,因爲我嘗試註銷失敗。 – KevinE

+0

請在您的問題中添加HTML的相關部分。 – Naktibalda