私は「Username」という入力を待ってから、値を入力するために分度器を使用しようとしています。どうすればいいですか?どのように分度器と私のファイルconfを使用して表示される要素を待つことができますか?
browser.get('http://localhost:5555/#');
var login = browser.driver.findElement(by.id('Username'));
私は「Username」という入力を待ってから、値を入力するために分度器を使用しようとしています。どうすればいいですか?どのように分度器と私のファイルconfを使用して表示される要素を待つことができますか?
browser.get('http://localhost:5555/#');
var login = browser.driver.findElement(by.id('Username'));
Expected Conditionsを使用すると、特定の条件、つまり要素が存在するか表示されるのを待つことができます。入力を埋めるにはsendKeysを使用してください。
var login = element(by.id('Username'));
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(login)).then(function() {
login.sendKeys('myuser');
});
これはあなたの設定ではなく、あなたの仕様に属します。
あなたがアングルアプリであり、すべてを正しく実行している場合は、要素またはページが読み込まれるのを待つ必要はありません。
分度器はあなたのためです。 APIドキュメントを参照してくださいWaitForAngular
また、あなたが興味があるかどうかを確認してください。 Protractor Over Selenium
は私が
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');
browser.wait' 'によって返さ約束解決する必要はありません:' browser.wait(EC.presenceOf(ログイン)); login.sendKeys( 'myuser'); ' –
@FlorentB。あなたは正しい、私はそれが私の意見でより読みやすいと思う。 – Gunderson
可読性は時々「個人的」なものです:)しかし、コードがより「フラット」であればあるほど、一般的に言えばより良いでしょう。 – alecxe