首页 > 解决方案 > 量角器 - 错误:超时 - 在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内未调用异步回调

问题描述

我的量角器测试失败并出现以下错误

错误:超时 - 在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内未调用异步回调。

这是我的规格文件。

let common=require('./Objects/common.js') describe('云测试', function() {

it('Cloudtest1', function() {

  let EC=protractor.ExpectedConditions;    
  browser.waitForAngularEnabled(false);

  browser.get(common.loginURL);
  common.txtUserName.sendKeys('aqaasdas@hkm.com');
  common.txtPword.sendKeys('asdasd@#$');
  common.btnLogin.click();

   
  browser.wait(EC.visibilityOf(element(by.xpath("//a[@class='btn btn-success']"))));
 
  element(by.xpath("//a[@class='btn btn-success']")).click();
  
  common.btnCrtPcr.click();

  

});

});

感谢您提供任何帮助,我尝试回答此处发布的类似问题,但对我没有任何帮助。我正在运行最新的 Protractor 和 Chrome 版本。

标签: jasmineprotractorjasmine-node

解决方案


您是否尝试过异步测试?有时甚至后端响应或浏览器性能也可能影响测试用例。

参考:https ://jasmine.github.io/2.0/introduction.html#section-Asynchronous_Support

describe("Your module", function() {
    var originalTimeout;
    beforeEach(function() {
      originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
      jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
    });

    it("takes a long time", function(done) {
        let EC=protractor.ExpectedConditions;    
        browser.waitForAngularEnabled(false);

        browser.get(common.loginURL);
        common.txtUserName.sendKeys('aqaasdas@hkm.com');
        common.txtPword.sendKeys('asdasd@#$');
        common.btnLogin.click();
   
        browser.wait(EC.visibilityOf(element(by.xpath("//a[@class='btn btn-success']"))));

        element(by.xpath("//a[@class='btn btn-success']")).click();
        common.btnCrtPcr.click();
    });

    afterEach(function() {
      jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
    });
  });


推荐阅读