量角器无法与页面同步

时间:2014-01-23 15:49:30

标签: angularjs selenium-webdriver jasmine protractor

我正在尝试使用基本的Protractor测试(使用Jasmine)。安装了量角器,运行了selenium,Protractor文档中的示例正在运行。

但是,当我将测试网站的内容(angularjs.org上的“基础知识”示例)复制到jsfiddle(http://jsfiddle.net/yfUQ8/2/)时,测试错误:

Error: Error while waiting for Protractor to sync with the page: {}

我的测试看起来像这样:

describe('angularjs homepage', function() {
  it('should greet the named user', function() {
    browser.get('http://fiddle.jshell.net/yfUQ8/2/show/'); // fails
    // browser.get('http://www.angularjs.org/'); // works

    element(by.model('yourName')).sendKeys('Julie');
    var greeting = element(by.binding('yourName'));
    expect(greeting.getText()).toEqual('Hello Julie!');
  });
});

当手动查看小提琴时,一切似乎都运转正常。使用ng-app引导Angular,测试在3秒内运行(因此它似乎不是超时)。

1 个答案:

答案 0 :(得分:4)

量角器需要找到与ngapp同步的元素。默认为'body'。在你的jsfiddle,我看到:

<body>
  <div ng-app>

如果设置了rootEl属性,那么你的jsfiddle应该可以工作。

describe('angularjs homepage', function() {
  it('should greet the named user', function() {
    browser.get('http://fiddle.jshell.net/yfUQ8/2/show/');
    browser.rootEl = 'div';

    element(by.model('yourName')).sendKeys('Julie');
    var greeting = element(by.binding('yourName'));
    expect(greeting.getText()).toEqual('Hello Julie!');
  });
});