Javascript CasperJS中evaluate()中的DOM元素缺少click()函数
与CasperJS相比,我在Chrome控制台的DOM元素上看到了不同的方法。我有以下我运行的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() {
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);