CasperJS找不到元素,即使我可以在开发者工具中使用CTRL-F

时间:2014-10-15 10:01:45

标签: javascript xpath css-selectors casperjs

'use strict';

var casper = require('casper').create({verbose: true, logLevel: 'debug'});
var element = '/html/body/div[7]/nav/div[5]/div/div/div[2]/div[1]/form';

casper.start('http://store.nike.com/us/en_us/', function () {
    if(this.exists(element)) this.echo('Found it!');
});

casper.run(function() {
    this.exit();
});

好的,所以这段代码片段尽可能简单。我启动了一个新的CasperJS实例,GET http://store.nike.com/us/en_us/,如果找到一个元素则回显,然后退出。现在,我似乎无法理解的是,为什么在世界上上面的代码没有找到该元素(XPath),但如果我加载Chrome开发者工具,我可以CTRL-F它。当我用CSS Path代替XPath时,结果相同。有谁能请赐教?我错过了什么?

1 个答案:

答案 0 :(得分:2)

您需要使用CasperJS的XPath实用程序,因为element是XPath表达式而不是CSS选择器。

var x = require('casper').selectXPath;

casper.start('http://store.nike.com/us/en_us/', function () {
    if(this.exists(x(element))) this.echo('Found it!');
});