我收到的错误是:
"Error while waiting for Protractor to synce with the page: "Cannot read property '$$testability' of undefined"
以下是我的测试。
describe('On the MyMoments page', function(){
beforeEach(function() {
var editLocationText = 'Location';
browser.driver.get('http://192.168.0.6:8100/#/page1/myMoments');
});
it('The edit button should work', function() {
browser.driver.get('http://192.168.0.6:8100/#/page1/myMoments').then(function() {
// browser.waitForAngular();
browser.getCurrentUrl().then(function(url) {
});
});
});
});
这是我的配置文件:
exports.config = {
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
args: ['--disable-web-security']
}
},
baseUrl: 'http://192.168.0.6:8100',
specs: [
'*.test.js'
],
jasmineNodeOpts: {
isVerbose: true,
}
};
我不认为这与我的测试有关,因为我的测试非常简单。以前有人遇到过这个问题吗?我有点卡住了。
感谢。
编辑:
将我的Protractor版本降级到4.0.14以修复此错误。现在我得到了:
"Failed: Error while waiting for Protractor to sync with the page: "[ng:test] no injector found for element argument to getTestability/http://errors.angularjs.org/1.5.3/ng/test"
如果有人知道这是什么或如何解决这个问题,请告诉我们!
感谢。
答案 0 :(得分:1)
这是量角器中的一个已知问题,请参阅here。正如问题中所提到的,这是因为如果没有将值传递给它,则浏览器会返回app根目录的当前值,但当前返回undefined。 一个新的版本即将到来,应该解决这个问题。
希望有所帮助
答案 1 :(得分:0)
将浏览器从chrome更改为firefox对我有用。
// conf.js
exports.config = {
framework: 'jasmine',
seleniumAddress: 'http://localhost:4444/wd/hub',
capabilities: {
'browserName': 'firefox'
},
specs: ['login-spec.js']
}
答案 2 :(得分:0)
虽然它有时是由根目录中没有html标记的文档引起的,但是#34;无法读取属性&$$; $$可测试性'未定义"更有可能表现为另一个错误的症状,该错误导致页面无法加载,或与任何因任何原因未加载的页面进行任何交互。
尝试在抛出错误的行上方使用browser.sleep,以便为页面加载时间。
如果页面尚未准备好进行量角器,则用于等待特定条件的browser.ExpectedConditions子句可能会抛出此错误。
有时,无法避免硬编码睡眠。
要诊断并修复它,
答案 3 :(得分:0)
我在Angular混合应用程序中遇到了同样的问题。 就我而言,问题在移除后已解决,
rootElement: 'myRootElement'
来自配置。