在页面上找不到量角器错误Angular

nua*_*der 10 jasmine angularjs protractor

我正在尝试使用量角器(2.1.0)为我的Angular(1.4)站点设置End-2-End测试.Jasmine已安装且单元测试工作正常.当我运行量角器时,索引#/登录页面会在浏览器窗口中加载,但没有代码运行,并且量角器会报告此错误

失败:在页面上找不到Angular http://localhost/SpectrumGMWeb/index.html#/login:重试查找超出角度

我的量角器配置看起来像这样

exports.config = {
    allScriptsTimeout: 11000,
    seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
    specs: [
        '*.js'
    ],
    rootElement:'html',
    capabilities: {
        'browserName': 'chrome'
    },
    baseUrl: 'http://localhost/SpectrumGMWeb/',
    framework: 'jasmine2',
    jasmineNodeOpts: {
        defaultTimeoutInterval: 30000
    },
};
Run Code Online (Sandbox Code Playgroud)

我的测试文件非常简单

describe('my app', function() {

    describe('login', function() {

        beforeEach(function() {
            browser.get('index.html#/login');
        });

        it('should render login page when user navigates to login page', function() {
            expect(true).toBe(true);
        });

    });
});
Run Code Online (Sandbox Code Playgroud)

ng-app ="main"在index.html的html元素上设置.该网站确实有效.

有任何想法吗?

Rah*_*Vig 9

在登录功能browser.ignoreSynchronization = true;之前尝试先放一个browser.get().

  • 这将消除错误,但不是问题的解决方案,因为此设置将导致稍后测试的问题. (2认同)

nua*_*der 5

好,谢谢大家的投入。我终于通过将所有index.html文件内容复制到一个新文件中来解决了这个问题。似乎文件以某种程度上因量角器不喜欢而损坏了。我知道这听起来很简单,但我在此上浪费了整整2天的时间,因此希望对您有所帮助。

  • 事实证明,这与文件编码有关。索引页以某种方式进行了Unicode编码,但设置为<meta charset =“ utf-8” /> (2认同)

小智 5

如果您需要导航到不使用Angular的页面,则在以下地方添加以下代码行:browser.get():

browser.waitForAngularEnabled(false);

参考:https : //github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular-on-page-load