2017-05-01 16 views
3

サンプルのAngularJSサイト@https://gamersweb-js.firebaseapp.com/は、そのページの1つの要素でIDで要素を見つけるはずの分度器テストケースがあります。このid 'displayNameInHome'の要素は(ユーザーの 'ホーム'ページに)存在しますが、テストケースでは見つからないことがあります。分度器のテストAngularJSが存在するIDで要素を見つけることができません

ウェブページにアクセスするには、ユーザー '[email protected]' +パスワード '123456'の資格情報を使用してログインし、ユーザーのホームページに移動します。次のテストケースは、....ストリングようこそ後に「テスター」のIDとなり、このページ上に要素「displayNameInHome」を見つけることができない:

beforeEach(function() { 
    //browser.get('http://localhost:5000/'); 
    browser.get('https://gamersweb-js.firebaseapp.com'); 
}); 

it('Testing display name in profile for logged in user:', function() { 
element(by.model('loginUI.email')).clear().sendKeys('[email protected]'); 
element(by.model('loginUI.password')).clear().sendKeys('123456'); 
element(by.id('loginBtn')).click(); 

return browser.wait(function() { 
    var displayNameInHome = element(by.id('displayNameInHome')); 
    return displayNameInHome.getText().then(function(text) { 
     return text =="tester"; 
    }); 
}, 10000); 

})。

なぜ 'displayNameInHome'要素がテストケースで見つからないのか分かりません。どんな助けでも大歓迎です。

ありがとうございます。

+0

はい、あなたの返信は非常に有用で、正確で、迅速なものでした。あなたの訂正のテストケースが機能するようになりました。 (ここの指示は「感謝のようなコメントを避ける」と言っていますので、私は何をすべきか分かりませんでした。私はここで新しいです)ありがとう! – dchosen1

+0

完了...私は当初それをする必要があるとは知らなかった。ありがとうございました。 – dchosen1

答えて

2

browser.wait()の最初のパラメータは、実際には待機する条件です。したがって、最初のパラメータは条件ではないため、テストはかなり速く終了します。

また、テストにはexpectがありません。

#displayNameInHome要素が存在することをテストが10秒間待つようにコードを変更し、アサーションを実行しました。

it('Testing display name in profile for logged in user:', function() { 
    element(by.model('loginUI.email')).clear().sendKeys('[email protected]'); 
    element(by.model('loginUI.password')).clear().sendKeys('123456'); 
    element(by.id('loginBtn')).click(); 
    var displayNameInHome = element(by.id('displayNameInHome')); 
    browser.wait(function() { 
     return browser.isElementPresent(displayNameInHome) 
    }, 10000); 

    expect(displayNameInHome.getText()).toEqual('tester'); 
}); 
関連する問題