web-dev-qa-db-ja.com

分度器のテスト:ログインフォームのテキスト要素の値を設定する方法

Angularアプリの分度器でテストを書いています。ログインフォームに記入して送信したいです。

これどうやってするの?私はここまで持っていますが、電子メールとパスワードのフィールドの値を設定する方法がわかりません。

describe('The dashboard', function() {
  ptor = protractor.getInstance();

  beforeEach(function() {
    ptor.get('#/dashboard');
    var email = ptor.findElement(protractor.By.model('email'));
    var password = ptor.findElement(protractor.By.model('password'));
    var submit = ptor.findElement(protractor.By.tagName('button'));
    // Fill out the form?
    submit.click();
  });

  it('has a heading', function() {
    heading = ptor.findElement(protractor.By.tagName('h1'));
    expect(heading.getText()).toEqual('My Dashboard');
  });
});
43
Richard

Googleでこれを見つけた人のために、答えは次のとおりです。

email.sendKeys('[email protected]');
password.sendKeys('mypassword');
77
Richard

使用できます

email.clear().sendKeys('[email protected]');
password.clear().sendKeys('mypassword');
25
shruti dalvi

shruti および Richard に加えて、

入力が空またはクリアされていることを確認するには、clearメソッドを使用して、Promise。入力でsendKeysメソッドでプロミスを解決します。これは、入力にデフォルト値を事前に入力している場合に役立ちます。

非同期/待機:

async fillInEmail() { 
  await email.clear(); 
  email.sendKeys('[email protected]'); 
}
async fillInPassword() { 
  await password.clear(); 
  password.sendKeys('mypassword'); 
}

ES6:

email.clear().then(() => {
    email.sendKeys('[email protected]');
});

password.clear().then(() => {
    password.sendKeys('mypassword');
});

ES6より前:

email.clear().then(function() {
    email.sendKeys('[email protected]');
});

password.clear().then(function() {
    password.sendKeys('mypassword');
});
10
desigNerd