使用phantomJs和量角器的问题

时间:2014-06-26 13:09:53

标签: angularjs phantomjs protractor

我正在使用量角器和PhantomJs对我的角度应用程序进行e2e测试。

目前我正在测试登录表单。我只是在检查

时,所有的测试工作都很好
  1. 表单是否正确加载
  2. 用户名/密码字段为空
  3. 输入错误的身份验证信息时会显示
  4. 错误。
  5. 到目前为止,幻影和量角器已经安静合作了

    然而,下面提到的测试用例一直在量角器中失败。我尝试了各种排列和组合但无济于事。

    当用户在登录表单中输入正确的身份验证信息时,角度应用程序将更改路线到仪表板部分。即浏览器窗口中的URL将从

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

    当我运行下面的测试时,我知道身份验证成功,因为服务器日志显示发送的成功响应对象。收到此响应后,角度应用程序应该已将路由更改为/ dashboard。然而,量角器未能在路线中捕捉到这种变化。

    我的测试如下所示:

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

    我对这个论坛的问题是,量角器是否有改变状态的问题?我在角色应用程序中使用ui.router?

1 个答案:

答案 0 :(得分:1)

我有同样的问题因为我使用的是phantomJS 1.9.x而不是2.x

所以你需要卸载phantomjs 1.9

npm remove -g phantomjs

并安装phantomJS 2.x

npm install -g phantomjs2

希望它也能解决你的问题