2016-09-01 8 views

答えて

0

Expected Conditionsを使用すると、特定の条件、つまり要素が存在するか表示されるのを待つことができます。入力を埋めるにはsendKeysを使用してください。

var login = element(by.id('Username')); 
var EC = protractor.ExpectedConditions; 
browser.wait(EC.presenceOf(login)).then(function() { 
    login.sendKeys('myuser'); 
}); 

これはあなたの設定ではなく、あなたの仕様に属します。

+0

browser.wait' 'によって返さ約束解決する必要はありません:' browser.wait(EC.presenceOf(ログイン)); login.sendKeys( 'myuser'); ' –

+0

@FlorentB。あなたは正しい、私はそれが私の意見でより読みやすいと思う。 – Gunderson

+0

可読性は時々「個人的」なものです:)しかし、コードがより「フラット」であればあるほど、一般的に言えばより良いでしょう。 – alecxe

0

あなたがアングルアプリであり、すべてを正しく実行している場合は、要素またはページが読み込まれるのを待つ必要はありません。

分度器はあなたのためです。 APIドキュメントを参照してくださいWaitForAngular

また、あなたが興味があるかどうかを確認してください。 Protractor Over Selenium

0

は私が

  • がタイムアウトを提供し、要素のショートカットバージョンを使用して、物事

    • のカップルが(by.id())
    • 設定変数を聞かせする代わりにVARを引き受ける私のブログに詳細を書きました(待機時間は無駄になります)
    • 待機時エラーメッセージ(待機機能の3番目のパラメータ) - エラー時の読み易さ
    • sendKeys()をコールバックに入れる必要はなく、分度器のcontrolFlowはこれがなくても正しい順序でコマンドを実行します。ここで

    コードの例です:

    let loginField = $('#Username'); 
    let EC = protractor.ExpectedConditions; 
    browser.wait(EC.visibilityOf(loginField), 3000, 'Login field should be visible before entering text'); 
    loginField.sendKeys('myuser'); 
    
  • 関連する問題