使用PhantomJS浏览器执行业力转轮时会产生以下错误:
*Selector [ng\:model="query.name"] did not match any elements*.
使用Chrome执行时,一切正常。 这是应该匹配的行:
`<input size='' style='width:3em;' ng-model="query.name" ng-change=changeQuery() ng-focus=focus($index) ng-blur=loseFocus($index)>`
karma.conf:
module.exports = function(config) {
config.set({
basePath: '../..',
frameworks: ['ng-scenario'],
plugins : [
'karma-ng-scenario',
'karma-chrome-launcher',
'karma-phantomjs-launcher',
'karma-junit-reporter'
],
files: [
'test/webapp/app/e2e/*.js'
],
exclude: [
],
proxies : {
'/': 'http://localhost:19880'
},
reporters: ['progress', 'junit'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: false,
browsers: [ 'Chrome', 'PhantomJS'],
captureTimeout: 60000,
singleRun: false
});
答案 0 :(得分:0)
失败的根本原因是PhantomJS是使用旧版本的JavaScript构建的,缺少&#34; bind&#34; 实现(Why PhantomJS doesn't have Function.prototype.bind)
控制器逻辑使用 currying ,使用bind方法,从而导致页面呈现不正确。我在使用phantomJS浏览器导出渲染页面时发现了这一点。
我从控制器代码中删除了所有绑定方法调用,现在End2end测试正在按预期传递。
我向我提供的有关该问题的信息表示道歉,因此无法推断出问题原因。