runtimeZero
runtimeZero

Reputation: 28066

Issues with using phantomJs and protractor

I am using protractor along with PhantomJs for e2e testing of my angular app.

Currently I am testing a login form. All the test work fine when I am simply checking

  1. whether the form loaded correctly
  2. username/password fields are empty
  3. errors are displayed when you enter incorrect authentication information.

So far phantomJs and protractor have been quiet cooperative

However the below mentioned test cases simply fails all the time in protractor. I have tried various permutation and combinations but to no avail.

when the user enters correct authentication information in the login form, the angular app will change the route to dashboard section. i.e the url in the browser window would change from

http://localhost:12345/#/signin/
to 
http://localhost:12345/#/dashboard

When I run the below give test, I know that the authentication was successful because the server logs display a success response object sent. Upon receiving this response, the angular app should have changed the route to /dashboard. However protractor fails to capture this change in route.

My test looks like below:

describe("SignOn Page - Performing authentication with valid credentials ",function(){
  var ptor;

  beforeEach(function(){
    ptor = protractor.getInstance();
    ptor.get('#/signon');
    ptor.findElement(protractor.By.id('username')).sendKeys('joe');
    ptor.findElement(protractor.By.id('password')).sendKeys('pass');
    element(by.partialButtonText('Sign In')).click();
    ptor.waitForAngular();
  });

  it("should re-direct user to dashboard page once the user enters correct authentication information",function(){
    ptor = protractor.getInstance();
    expect(ptor.getCurrentUrl()).toContain('dashboard');
    expect(ptor.getTitle()).toContain('dashboard');
  });


});

My question to this forum is, does protractor have issues changing states ? I am using ui.router in my angular application ?

Upvotes: 3

Views: 837

Answers (1)

rbinsztock
rbinsztock

Reputation: 3195

I had the same issue because I was using phantomJS 1.9.x and not the 2.x

So you need to uninstall phantomjs 1.9

npm remove -g phantomjs

and install phantomJS 2.x

npm install -g phantomjs2

Hope it's also solve your issue

Upvotes: 1

Related Questions