ped*_*rte 4 javascript evaluate casperjs
在过去的几个小时里,我一直在尝试查询DOM元素并将它们存储在CasperJS的数组中,然后我可以循环遍历它们并触发click事件.
比方说,我的标记是这样的:
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
现在,我想存储<li>一个数组,然后循环,触发Click事件,然后进行捕获.
这是我尝试过的事情之一:
var listItems = [];
casper.start();
casper.open(urlHere, function () {
listItems.push(this.evaluate(function () {
return document.querySelectorAll('ul > li');
}));
this.echo(listItems);
});
Run Code Online (Sandbox Code Playgroud)
它返回[ , , , ]基本上意味着它们都是null.
有人可以指导我朝正确的方向发展吗?
谢谢!
NiK*_*iKo 10
试试这个:
var listItems = [];
casper.start(urlHere, function () {
listItems = this.evaluate(function () {
var nodes = document.querySelectorAll('ul > li');
return [].map.call(nodes, function(node) {
return node.textContent;
});
});
this.echo(listItems);
});
Run Code Online (Sandbox Code Playgroud)
基本上,您不能返回不可序列化的值this.evaluate(),它在文档中得到了很好的解释.
| 归档时间: |
|
| 查看次数: |
4537 次 |
| 最近记录: |