How to have protractor reliable results?

前端 未结 4 560
误落风尘
误落风尘 2020-12-10 12:22

I\'m using Protractor (v 1.3.1) to run E2E tests for my Angular 1.2.26 application.

But sometimes, tests are ok, sometimes not. It seems that sometimes the check is

4条回答
  •  旧巷少年郎
    2020-12-10 12:43

    Every time I have similar issues, I'm using browser.wait() with "Expected Conditions" (introduced in protractor 1.7). There is a set of built-in expected conditions that is usually enough, but you can easily define your custom expected conditions.

    For example, waiting for an element to become visible:

    var EC = protractor.ExpectedConditions;
    var e = element(by.id('xyz'));
    
    browser.wait(EC.visibilityOf(e), 10000);
    expect(e.isDisplayed()).toBeTruthy();
    

    Few notes:

    • you can specify a custom error message in case the conditions would not be met and a timeout error would be thrown, see Custom message on wait timeout error:

      browser.wait(EC.visibilityOf(e), 10000, "Element 'xyz' has not become visible");
      
    • you can set EC to be a globally available variable pointing to protractor.ExpectedConditions. Add this line to the onPrepare() in your config:

      onPrepare: function () {
          global.EC = protractor.ExpectedConditions;
      }
      
    • as an example of a custom expected condition, see this answer

提交回复
热议问题