在页面上下文中使用CasperJS'getElementInfo

时间:2016-03-24 18:39:47

标签: javascript casperjs

数据

<a href="/route" data-eventid="train_card" data-eventlabel="2:10"> <strong>2:10</strong>  <h5>Bristol to London</h5> <em>Platform 1</em> </a>

代码

function getPlatform() {
  var types = document.querySelectorAll('.appList a');
  return Array.prototype.map.call(platforms, function(e){
      return e.innerText;
     // return e.getElementInfo('em');
     // return e.fetchText('a em');
  });
};

如果我使用innerText,我会得到: -

 2:10
Bristol to London
Platform 1

但是我只想从元素EM获得'平台1',我怎么能这样做,我尝试过使用getElementInfo&amp; FetchText - 看看我已经注释掉的代码,既不起作用..任何想法?

1 个答案:

答案 0 :(得分:0)

更改

return e.innerText;

return e.querySelector("em").textContent;

这是Element API的基本示例。您无法使用casper.getElementInfo,因为casper未在页面上下文内部定义(casper.evaluate()内)。

您需要确保e.querySelector("em")不为空。