作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从网站上抓取足球比分数据。所有分数都在表格中,每个 <tr>
后面有“block home matches 17”和一些独特的东西。
我在 Chrome 开发工具中测试了我的 xpath,它仅识别我需要的表行。
var utils = require('utils');
var casper = require('casper').create();
var xpath = require('casper').selectXPath;
var result = [];
function getScores(){
console.log("getting scores");
result = __utils__.getElementsByXPath("//tr[contains(@id,'block_home_matches_17')");
}
casper.start('http://int.soccerway.com/', function() {
console.log("casper start....");
var l = getScores();
utils.dump(l);
});
casper.run();
代码返回 [] 作为 utils.dump!为什么?我的 xpath 是有效的!
最佳答案
您遇到三个问题:
evaluate()
访问沙盒页面上下文中的 DOM 节点,但是__utils__
) module仅在页面上下文中可用。您可以通过 CasperJS 函数检索目标 DOM 节点的表示:
casper.start('http://int.soccerway.com/', function() {
utils.dump(this.getElementsInfo(xpath("//tr[contains(@id,'block_home_matches_17')")));
});
或者直接处理页面上下文中的元素:
casper.start('http://int.soccerway.com/', function() {
utils.dump(this.evaluate(function(){
return __utils__.getElementsByXPath("//tr[contains(@id,'block_home_matches_17')").map(function(el){
return {} // TODO: produce your own representation
});
}));
});
关于javascript - CasperJS 的 getElementsByXpath 返回带有有效 XPath 的 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34578385/
我使用以下代码获取第一个表格行中的所有表格单元格。然后我想检查每个表格单元格的 innerHTML。但是在这个函数返回的对象中实际上只有第一个表格单元格在那里,所有其他属性都是空的: firstRow
下面给出了我的 casper.js 测试脚本的片段; var refObject = undefined; casper.then(function() { refObject = this.ev
我正在从网站上抓取足球比分数据。所有分数都在表格中,每个 后面有“block home matches 17”和一些独特的东西。 我在 Chrome 开发工具中测试了我的 xpath,它仅识别我需要的
我是一名优秀的程序员,十分优秀!