Не способный получить элементы, используя xpath в casperjs

Я использую casperjs и следую, код

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

casper.start('http://google.co.in/', function() {
   //search for 'casperjs' from Google form
    this.test.assertExists(x('//*[@type="text"]'), 'the element exists');

});
casper.run(function() {
   //echo results in some pretty fashion
    this.echo('').exit();
});

это не смогло найти любой элемент с типом признака как текст, хотя есть много.

Это - продукция, которую я получаю

FAIL the element exists
#    type: assertExists
#    subject: false
#    selector: {"type":"xpath","path":"//*[@type=\"text\"]"}
2
добавлено отредактировано
Просмотры: 1
de

2 ответы

Google, как было известно, не был благоприятен для личинки. Для этого, чтобы работать, необходимо установить UserAgent.

Это было проверено под CasperJS-1.0.0 и PhantomJS-1.8.0

var casper = require('casper').create({
  pageSettings: {
    userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/25.0.1349.2 Safari/537.21'
  }
});
var x = require('casper').selectXPath;

casper.start('http://google.co.in/', function() {
 //search for 'casperjs' from Google form
  this.test.assertExists(x('//*[@type="text"]'), 'the element exists');
  this.test.assertExists({
    type: 'xpath',
    path: '//*[@type="text"]'
  }, 'the element exists');
});

casper.run(function() {
 //echo results in some pretty fashion
  this.echo('').exit();
});

Можно посетить http://whatsmyuseragent.com/ видеть, каков ваш текущий UserAgent.

Update: Removed CasperJS-1.0.0 code in favor of backwards-compatible code.

4
добавлено

Подобный ответ как hexid, но установить агент пользователя, необходимо начать casper сначала (не наоборот):

var casper = require('casper').create({verbose: true});
var x = require('casper').selectXPath;

casper.start();
casper.userAgent('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/25.0.1349.2 Safari/537.21');

casper.thenOpen('http://google.co.in/', function() {
   //search for 'casperjs' from Google form
    this.test.assertExists(x('//input[@type="text"]'), 'the element exists');
});

casper.run(function() {
   //echo results in some pretty fashion
    this.echo('').exit();
});

Проверенный с PhantomJs 1.7.0 и 1.0.0-RC4 Каспером

2
добавлено
Ах хорошо, загрузил CasperJs через Домашнее пиво сегодня. Кажется, не актуален тогда.
добавлено автор asgoth, источник
С CasperJS-1.0.0 можно установить UserAgent прежде casper.start ()
добавлено автор hexid, источник
это, просто обновление варева и информация о вареве ;)
добавлено автор NiKo, источник