Javascript CasperJS中evaluate()中的DOM元素缺少click()函数

Javascript CasperJS中evaluate()中的DOM元素缺少click()函数,javascript,click,phantomjs,casperjs,Javascript,Click,Phantomjs,Casperjs,与CasperJS相比,我在Chrome控制台的DOM元素上看到了不同的方法。我有以下我运行的 var casper = require('casper').create({ verbose: true, logLevel: "debug" }); var url = 'http://casperjs.org/'; casper.start(url, function() { this.echo('sdfsdf'); }); casper.then(function() {

与CasperJS相比,我在Chrome控制台的DOM元素上看到了不同的方法。我有以下我运行的

var casper = require('casper').create({
  verbose: true,
  logLevel: "debug"
});

var url = 'http://casperjs.org/';

casper.start(url, function() {
  this.echo('sdfsdf');
});

casper.then(function() {
  var link = this.evaluate(function() {
    var b = document.querySelector(".page-header");
    var s = "";

    for (var m in b) {
      if (typeof b[m] === 'function') {
        s += JSON.stringify(m) + " ";
      }
    }
    return s;
  });
  console.log(link);
});

casper.run();
它产生

“子项”“子节点”“InsertAdjaceEntElement”“insertAdjacentHTML” insertAdjacentText“setAttribute”getElementsByTagName getAttribute“querySelectorAll”webkitMatchesSelector getElementsByClassName“”包含“getBoundingClientRect” removeAttribute“”查询选择器“”hasAttribute“”getAttributeNode getAttributeNS“GetElementsByTagnames”删除属性 “getClientRects”“scrollByPages”“setAttributeNode”“setAttributeNS” hasAttributeNS“模糊”scrollIntoViewIfNeeded“滚动署名” “SetAttributeNodes”“removeAttributeNode”“GetAttributeNodes” “焦点”“scrollIntoView”“addEventListener”“appendChild”“克隆节点” “removeChild”“removeEventListener”“ComparedDocumentPosition” 在“hasAttributes”之前插入受支持的“isEqualNode” dispatchEvent“”isDefaultNamespace“”hasChildNodes“”规范化 “replaceChild”“isSameNode”“lookupPrefix”“lookupNamespaceURI”

另一方面,如果我在Chrome的控制台中运行以下代码

var b = document.querySelector(".page-header");
var s = "";
for (var m in b) {
  if (typeof b[m] === 'function') {
    s += JSON.stringify(m) + " ";
  }
}
我得到以下信息。为什么缺少CasperJS
单击

单击“焦点”“模糊”“hasAttributes”“getAttribute” “GetAttributes”“setAttribute”“SetAttributes”“removeAttribute” removeAttributeNS“hasAttribute”hasAttributeNS“getAttributeNode” “getAttributeNodeNS”“setAttributeNode”“setAttributeNodeNS” removeAttributeNode“最近”匹配“getElementsByTagName” “getElementsByTagNameNS”“getElementsByClassName”“insertAdjacentHTML” createShadowRoot“getDestinationInsertionPoints” “requestPointerLock”“getClientRects”“getBoundingClientRect” scrollIntoView“insertAdjacentElement”insertAdjacentText ScrollIntoViewIfRequired“WebKitMatcheSelector”“动画”“删除” “webkitRequestFullScreen”“webkitRequestFullScreen”“查询选择器” querySelectorAll“hasChildNodes”规范化“cloneNode” isEqualNode“ComparedDocumentPosition”包含“lookupPrefix” “lookupNamespaceURI”“isDefaultNamespace”“insertBefore”“appendChild” “replaceChild”“removeChild”“isSameNode”“addEventListener” removeEventListener“dispatchEvent”


如果您使用的是PhantomJS 1.x,则支持
click()
,但只支持
元素。有关更多信息,请参阅。请注意,PhantomJS 1.x与Chrome 13相当,Chrome 20引入了对
click()
的全面支持

这种支持扩展到了PhantomJS2中的所有元素类型,因为它有一个隐藏的元素


使用CasperJS'
单击()


或者PhantomJS的众多解决方法之一:

如果您使用的是PhantomJS 1.x,那么就支持
单击()
,但只支持
元素。有关更多信息,请参阅。请注意,PhantomJS 1.x与Chrome 13相当,Chrome 20引入了对
click()
的全面支持

这种支持扩展到了PhantomJS2中的所有元素类型,因为它有一个隐藏的元素


使用CasperJS'
单击()

或者PhantomJS的众多解决方案之一:

casper.click(selector);