JavaScript
PhantomJS
Nightmare

PhantomJS のラッパー Nightmare を試してみる

More than 3 years have passed since last update.

話題らしいので 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


キャプチャ画像

背景透明になる(サイズ大きいので縮小した)

yahoo.png


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 みたいの無いっぽい。

試してないけどプラグインが上手く使えればいい感じかも。


参考