当我通过网络浏览器(safari或chrome)运行它时,这个测试就通过了,但是通过grunt-contrib失败了。
TypeError: 'undefined' is not a function (evaluating 'document.getElementsByClassName('video')[0].click()' 奇怪的是,document.getElementsByClassName('video').length = 1,但document.getElementsByClassName(‘视频’) ===没有定义
describe('ringing incomming', function (){
var ringing_url = "ringing_payload"
var webRtcUi = false;
var accept = false;
var hangup = false
beforeEach(function (){
accept = jasmine.createSpy('accept');
hangup = jasmine.createSpy('hangup');
webRtcUi = new WeemoWebRtcUi.WebRtcUi({dn: "wassupHomeBoy", accept: accept, hangup: hangup }, {legacy: false, uiRingToneUrl: ringing_url}, false);
webRtcUi.ringing();
});
afterEach(function (){
document.body.removeChild(document.getElementsByClassName('incoming-call')[0]);
});
it('on accept clicked callobject accept called', function (){
document.getElementsByClassName('video')[0].click();
expect(accept).toHaveBeenCalledWith();
});
});任何帮助都是非常感谢的!
发布于 2014-07-01 12:11:35
我把症状弄错了。实际上,幻影中不存在的是.click()函数。Object.keys(document.getElementsByClassName('video'))返回数据,尽管console.log是空的。
我用
function click(el){
var ev = document.createEvent("MouseEvent");
ev.initMouseEvent(
"click",
true /* bubble */, true /* cancelable */,
window, null,
0, 0, 0, 0, /* coordinates */
false, false, false, false, /* modifier keys */
0 /*left*/, null
);
el.dispatchEvent(ev);
}https://stackoverflow.com/questions/24490178
复制相似问题