Javascript 在CasperJS中获取动态id值

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

我需要获取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();

CasperJS构建在PhantomJS之上,并使用其两个上下文的模型。只有页面上下文才能访问DOM,并且只能将可序列化的值传入和传出DOM。这是通过:

的PhantomJS文档有一个重要的注意事项:

注意:参数和
evaluate
函数的返回值必须是一个简单的原语对象。经验法则:如果可以通过JSON对其进行序列化,那么就可以了

闭包、函数、DOM节点等将无法工作


其他小事情:

  • element.firstChild
    工作于节点,而不仅仅是元素。所以第一个子节点可能总是一个没有id的TextNode
  • http:\\www.example.es
    不是有效的URL。使用前斜杠:
    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);
});