6

CasperJSスクリプトを実行する過程で、別のサイトからJSONデータをフェッチして解析し、そのデータを使用して、アクティブに作業しているサイトのフォームに入力できるようにする必要があります。

これどうやってするの?

4

1 に答える 1

8

あなたが使用することができます__utils__.sendAJAX()

var casper = require('casper').create();
var wsurl = 'https://raw.github.com/n1k0/casperjs/master/package.json';
var word;

casper.start('http://google.com/', function() {
    word = this.evaluate(function(wsurl) {
        try {
            return JSON.parse(__utils__.sendAJAX(wsurl, 'GET', null, false)).name;
        } catch (e) {
        }
    }, {wsurl: wsurl});
});

casper.then(function() {
    if (!word) {
        this.die('unable to retrieve word');
    }
    this.echo('searching for ' + word);
    this.fill('form[action="/search"]', {q: word}, true);
});

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

サンプル実行(渡すことを忘れないでください--web-security=no):

$ casperjs test.js --web-security=no
searching for casperjs
http://www.google.fr/search?hl=fr&source=hp&q=casperjs&gbv=2&oq=&gs_l=

それが役に立てば幸い。

于 2012-11-10T08:46:40.847 に答える