話題らしいので Nightmare を弄ってみる
インストール
npm install nightmare
サンプルコード (+ キャプチャ)
公式のサンプルに画面キャプチャを付け足してみた
Nightmare
example_nightmare.js
var Nightmare = require('nightmare');
new Nightmare()
.goto('http://yahoo.com')
.type('input[title="Search"]', 'github nightmare')
.click('.searchsubmit')
.screenshot('yahoo.png')
.run();
CasperJS
ちなみに CasperJS で書くとこんな感じ
example_casper.js
var casper = require('casper').create();
casper.start('http://google.fr/', function() {
this.fill('form[action="/search"]', { q: 'casperjs' }, true);
});
casper.then(function() {
this.capture('google.png');
});
casper.run();
実行
$ node sample_nightmare.js
キャプチャ画像
背景透明になる(サイズ大きいので縮小した)
API
- .goto(url)
- .back()
- .refresh()
- .url(cb)
- .click(selector)
- .type(selector, text)
- .upload(selector, path)
- .evaluate(fn, cb, [arg1, arg2,...])
- .wait()
- .wait(ms)
- .wait(selector)
- .wait(fn, value, [delay])
- .screenshot(path)
- .useragent(useragent)
- .viewport(width, height)
- .use(plugin)
- .run(cb)
プラグイン
nightmare-swiftly をインストールすると下記が使える模様
- .login(email, password)
- .task(instructions, uploads, callback)
- .state(callback)
- .wait(state, callback)
- .download(taskUrl, path)
- .approve(taskUrl)
感想
CasperJS にある Testing みたいの無いっぽい。
試してないけどプラグインが上手く使えればいい感じかも。