我正在尝试使用基本的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秒内运行(因此它似乎不是超时)。
答案 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!');
});
});