Protractor testing: How to set the value of text elements in a login form?

Richard picture Richard · Nov 25, 2013 · Viewed 52.4k times · Source

I am writing tests in Protractor for an Angular app. I want to fill out a login form and submit it.

How can I do this? I have got this far, but I don't know how to set the value of the email and password fields.

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');
  });
});

Answer

Richard picture Richard · Nov 25, 2013

Just for the benefit of anyone who found this via Google, the answer is:

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