我用casperjs抓取网站。 单击元素时,显示错误:无法访问已删除QObject的成员`evaluate'。 然后没有继续。
有谁知道这意味着什么?我该怎么做才能阻止这种情况发生?
以下是我点击按钮的代码
casper.start(url, function(){
var cookies = JSON.stringify(phantom.cookies)
fs.write(cookiePath, cookies, 644)
casper.wait(2000)
})
//click
casper.waitForSelector(clickElem, function(){
casper.evaluate(click, clickElem)
casper.wait(3000)
})
//////////// error in here ↓
casper.then(function(){
var hrefs = casper.evaluate(getValues, options.block.hrefpath, 'href')
})
function click(elem){
// find element to send click to
var element = document.querySelector(elem)
// create a mouse click event
var event = document.createEvent( 'MouseEvents' )
event.initMouseEvent( 'click', true, true, window, 1, 0, 0 )
// send click to element
element.dispatchEvent( event )
}
function getValues(elem, attr) {
var doms = document.querySelectorAll(elem)
return Array.prototype.map.call(doms, function(e) {
if(attr) return e.getAttribute(attr)
else return e.textContent
})
}