2016-11-26 138 views
3

我正在尝试UI测试引导程序模式,它没有使用角插件,它是一个香草bootstrap模态。我得到这个错误:量角器测试引导程序模式 - 非角度页面 - 超时

Failed: Timed out waiting for asynchronous Angular tasks to finish after 11 seconds. This may be because the current page is not an Angular application. Please see the FAQ for more details: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular While waiting for element with locator - Locator: By(css selector, h2.modal-title)✗

有没有办法解决这个还是不能测试用量角器香草引导模式?

这里是我完整的测试:

import { browser, element, by, By, $, $$, ExpectedConditions } from 'protractor'; 
import { E2EUtilities } from './utilities.spec' 

    describe('Result Details', function() { 
     it(`Shows result details modal when clicking on a result`, function() { 
      E2EUtilities.navigateToResultsPage(); 
      element(by.id('result0')).isPresent().then(function (result) { 
      if (result) { 
       element(by.id('result0')).click(); 
       browser.sleep(3000); 
       expect(element(by.css('h2.modal-title')).isPresent()).toBe(true); 
      } else { 
       expect(element(by.css('h2.modal-title')).isPresent()).toBe(false); 
      } 
      }); 
     }); 
    }); 

请注意,我已经离开E2EUtilities.navigateToResultsPage();隐蔽,因为我知道这个问题是不是因为代码获得通过这一切,更进一步为可以通过眼睛可以看到。

回答

5

你可能有更多的运气暂时转动同步关闭:

element(by.id('result0')).isPresent().then(function (result) { 
    if (result) { 
    browser.ignoreSynchronization = true; 

    element(by.id('result0')).click(); 
    browser.sleep(3000); // TODO: use ExpectedConditions? 
    expect(element(by.css('h2.modal-title')).isPresent()).toBe(true); 
    } else { 
    expect(element(by.css('h2.modal-title')).isPresent()).toBe(false); 
    } 
}); 

browser.ignoreSynchronization = false; 
+0

你知道为什么会出现这种情况?只有一个基本测试有同样的问题 – genuinefafa

+0

@genuinefafa可能是多种原因 - 通常它是在角度应用程序本身中使用$ timeout。 – alecxe