這可能有一個簡單的解決方案,但我只是沒有看到它。我正在寫一個量角器測試和設置頁面對象文件獲取「無法讀取屬性'[方法]'未定義」
newstate.js(頁面目標文件)
'use strict';
var newstate = function (url) {
browser.get(url);
};
newstate.prototype = Object.create({}, {
dd: { select: function(state) { $('select option[value="'+state+'"]').click(); } }
});
module.exports = newstate;
的spec.js文件:
'use strict';
var newstate = require('newstate.js');
describe('Testing newstate', function() {
var statePage;
beforeAll(function() {
statePage = new newstate('http://localhost:8080');
});
it('should select a state', function() {
statePage.dd.select('AK');
})
})
的conf.js文件:
exports.config = {
framework: 'jasmine',
specs: ['test-spec.js'],
useAllAngular2AppRoots: true,
jasmineNodeOpts: {
showColors: true
}
};
當我運行量角器,我得到:
$ protractor conf.js
Failures:
1) Testing newstate should select a state
Message:
Failed: Cannot read property 'select' of undefined
它啓動瀏覽器,打開網頁,就像它應該當我打電話給new newstate('...')
但由於某種原因,它不想看到我的dd.select功能。我錯過了什麼或做錯了什麼?謝謝。
作爲一個編碼約定,最好將構造函數聲明爲'function Newstate(...)' – OrangeDog