Всем доброго времени суток! Пытаюсь познать как работает casperjs на простом примере, а именно: пытаюсь зайти на сайт переводчика bing и перевести некую фразу, однако не могу понять, почему иногда он возвращает ответ, а иногда нет =\ Может кто-то с таким сталкивался? Или есть гуру этой библиотеки, которые знают где я накосячил, а я 100% накосячил.
//System Vars
var system = require('system'),
casper = require('casper').create({
verbose: true,
logLevel: "debug",
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4'
}),
format = require('utils').format;
//Local Vars
var source = casper.cli.get('source') || 'en',
target = casper.cli.get('target'),
data = casper.cli.get(0),
url = format('http://www.bing.com/translator?from=%s&to=%s', source, target),
result;
//CasperJS options
casper.options.waitTimeout = 20000;
if (!target) {
casper.warn('The --target option is mandatory.').exit(1);
}
casper.start(url, function() {
console.log('Page Loaded');
})
casper.waitForSelector('#srcText', function() {
var text = JSON.parse(atob(data)).join('\n');
var rows_count = JSON.parse(atob(data)).length - 1;
this.sendKeys('#srcText', text);
this.then(function() {
this.click('#TranslateButton');
this.waitForSelector('div[paragraphname="paragraph'+rows_count+'"]', function() {
listItems = this.evaluate(function () {
var nodes = document.querySelectorAll('#destText > div');
return [].map.call(nodes, function(node) {
return node.textContent;
});
});
this.echo(JSON.stringify(listItems));
});
});
});
casper.run();
Проблема решилась путем замены sendKeys на fillSelectors
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости