2015-04-22 89 views
1

我跑我的噶测试和PhantomJS:呼叫点击()在茉莉phantomjs测试HTML元素的功能

INFO [karma]: Karma v0.12.32 server started at http://localhost:9876/ INFO [launcher]: Starting browser PhantomJS INFO [PhantomJS 1.9.8 (Windows 7)]: Connected on socket kVOvdbbgtIeUQuV8AAAA wit

在该测试中,我想在一段点击(P)让我的事件 - 反馈系统开发:

// given 
var element = appendToBody("<p id='hello-p'>Hello Hello World!</p>"); 

element.addEventListener('click', function(event) { 
    console.log("1"); 
}); 

// when 
var p = document.getElementById("hello-p"); 

console.log(p); 
// LOG: <p id="hello-p">Hello Hello World!</p> 
console.log(p.id); 
// LOG: 'hello-p' 

p.click(); // calling click 

我最终此消息:

TypeError: 'undefined' is not a function (evaluating 'p.click()')

问:为什么p可能是不确定的?

+0

我发现这一点:http://stackoverflow.com/questions/12744202/undefined-is-not-a-function-evaluating搜索结果时,请点击Safari浏览器。这已经解决了我的问题 – ses

回答

1

好的。 Bacause PhantomJS基于WebKit,我要创建/发送事件是这样的:

var cle = document.createEvent("MouseEvent"); 
    cle.initEvent("click", true, true); 
    var elem = document.getElementById('hello-p'); 
    elem.dispatchEvent(cle);