Javascript 在CasperJS中获取动态id值
我需要获取id=“1”的值,它是动态的,紧跟在id=“divcontendor”之后Javascript 在CasperJS中获取动态id值,javascript,phantomjs,casperjs,Javascript,Phantomjs,Casperjs,我需要获取id=“1”的值,它是动态的,紧跟在id=“divcontendor”之后 **** 我的CasperJS代码: var casper=require('casper').create(); casper.start('http:\\www.example.es'); casper.then(函数(){ var id=document.getElementById('divContendor').firstChild 这个.echo(id); }); casper.run(); C
****
我的CasperJS代码:
var casper=require('casper').create();
casper.start('http:\\www.example.es');
casper.then(函数(){
var id=document.getElementById('divContendor').firstChild
这个.echo(id);
});
casper.run();
CasperJS构建在PhantomJS之上,并使用其两个上下文的模型。只有页面上下文才能访问DOM,并且只能将可序列化的值传入和传出DOM。这是通过:
的PhantomJS文档有一个重要的注意事项:
注意:参数和evaluate
函数的返回值必须是一个简单的原语对象。经验法则:如果可以通过JSON对其进行序列化,那么就可以了
闭包、函数、DOM节点等将无法工作强>
其他小事情:
工作于节点,而不仅仅是元素。所以第一个子节点可能总是一个没有id的TextNodeelement.firstChild
不是有效的URL。使用前斜杠:http:\\www.example.es
http://www.example.es/
firstChild
,而是使用children[0]
。我扩展了我的答案。:-)好的,它可以工作,你能帮我获取显示时没有标签的文本吗?名称\u 1要捕获此名称\u 2要捕获此名称。谢谢,阿加尼在你的问题中没有看到这一点,所以我不知道你在说什么。检索element.textContent
实际上会删除所有HTML标记并只返回文本。请,我想投他的票,告诉我我需要15个字符
casper.then(function() {
var id = this.evaluate(function(sel) {
return document.getElementById(sel).children[0].id;
}, 'divContenedor');
this.echo(id);
});