在casperjs中单击输入元素并显示错误:无法访问已删除QObject的成员`evaluate'

时间:2015-11-07 10:39:44

标签: javascript phantomjs casperjs

我用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
  })
}

0 个答案:

没有答案