PhantomJS의 rapa Nightmare를 시도해보도록 하겠습니다.

화제성 있으니까 나이트 mare 해봐.

설치하다.

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은 없는 것 같습니다.
    시도는 안 해봤지만 플러그인을 잘 쓰면 좋을 것 같아요.

    참고 자료

  • http://www.nightmarejs.org
  • https://github.com/segmentio/nightmare
  • http://casperjs.org/
  • 좋은 웹페이지 즐겨찾기