0
CasperJS
Howard 2013/12/22
CasperJS

CasperJS is an open source navigation scripting & testing
utility written in Javascript for the PhantomJS WebKi...
Doing common tasks
 such as:
 defining & ordering browsing navigation steps
 filling & submitting forms

 clicking & f...
Installation

 Prerequisites
 PhantomJS
 PhantomJS is a headless WebKit scriptable with a JavaScript API.
 It has fast...
目標

 列舉出目前 IPTECH TW
的目前可檢索的站台
A minimal scraping script
 What did we just do?
 we created a new Casper instance

 we started it and opened http://cas...
start(), then(), run(), exit()


start()
 Signature: start(String url [, Function then])
 Configures and starts Casper,...
start(), then(), run(), exit()
start(), then(), run(), exit()

?
casper module – fill
 Signature: fill(String selector, Object values[, Boolean submit])
 Fills the fields of a form with...
click
 click(Number x, Number y)
 click(String selector)
 Performs a click on the first element found matching the prov...
evaluate
 Signature: evaluate(Function fn[, arg1[, arg2[, …]]])
 Evaluates an expression in the current page DOM context
Understanding evaluate()
 Think of the evaluate() method as a gate between the CasperJS environment and the
one of the pa...
waitForSelector
 Signature: waitForSelector(String selector[, Function then, Function onTimeout, Number
timeout])
 Waits...
references
 http://docs.casperjs.org/en/latest/quickstart.html
 http://docs.casperjs.org/en/latest/modules/index.html
 ...
Upcoming SlideShare
Loading in...5
×

CasperJS

1,582

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,582
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
24
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "CasperJS"

  1. 1. CasperJS Howard 2013/12/22
  2. 2. CasperJS CasperJS is an open source navigation scripting & testing utility written in Javascript for the PhantomJS WebKit headless browser and SlimerJS (Gecko). It eases the process of defining a full navigation scenario and provides useful high-level functions, methods & syntactic sugar
  3. 3. Doing common tasks  such as:  defining & ordering browsing navigation steps  filling & submitting forms  clicking & following links  capturing screenshots of a page (or part of it)  testing remote DOM  logging events  downloading resources, including binary ones  writing functional test suites, saving results as JUnit XML  scraping Web contents
  4. 4. Installation  Prerequisites  PhantomJS  PhantomJS is a headless WebKit scriptable with a JavaScript API.  It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.  http://phantomjs.org/download.html  CasperJS
  5. 5. 目標  列舉出目前 IPTECH TW 的目前可檢索的站台
  6. 6. A minimal scraping script  What did we just do?  we created a new Casper instance  we started it and opened http://casperjs.org/  once the page has been loaded, we asked to print the title of that webpage (the content of its <title> tag)  then we opened another url, http://phantomjs.org/  once the new page has been loaded, we asked to print its title too  we executed the whole process
  7. 7. start(), then(), run(), exit()  start()  Signature: start(String url [, Function then])  Configures and starts Casper, then open the provided url and optionally adds the step provided by the then argument  then()  Signature: then(Function then)  run()  Signature: run(fn onComplete[, int time])  Runs the whole suite of steps and optionally executes a callback when they’ve all been done. Obviously, calling this method is mandatory in order to run the Casper navigation suite.  exit()  Signature: exit([int status])  Exits PhantomJS with an optional exit status code.  Note that the current Casper instance automatically binds the this keyword for you within step functions
  8. 8. start(), then(), run(), exit()
  9. 9. start(), then(), run(), exit() ?
  10. 10. casper module – fill  Signature: fill(String selector, Object values[, Boolean submit])  Fills the fields of a form with given values and optionally submits it.  Fields are referenced by their name attribute.
  11. 11. click  click(Number x, Number y)  click(String selector)  Performs a click on the first element found matching the provided selector expression or at given coordinates if two numbers are passed  selector expression  CSS3 selector strings  Xpath expressions
  12. 12. evaluate  Signature: evaluate(Function fn[, arg1[, arg2[, …]]])  Evaluates an expression in the current page DOM context
  13. 13. Understanding evaluate()  Think of the evaluate() method as a gate between the CasperJS environment and the one of the page you have opened;  Every time you pass a closure to evaluate(), you’re entering the page and execute code as if you were using the browser console.
  14. 14. waitForSelector  Signature: waitForSelector(String selector[, Function then, Function onTimeout, Number timeout])  Waits until an element matching the provided selector expression exists in remote DOM to process any next step
  15. 15. references  http://docs.casperjs.org/en/latest/quickstart.html  http://docs.casperjs.org/en/latest/modules/index.html  http://docs.casperjs.org/en/latest/modules/casper.html#start  http://docs.casperjs.org/en/latest/modules/casper.html#then  http://docs.casperjs.org/en/latest/modules/casper.html#run  http://docs.casperjs.org/en/latest/modules/casper.html#exit  http://docs.casperjs.org/en/latest/modules/casper.html#fill  http://docs.casperjs.org/en/latest/selectors.html  http://docs.casperjs.org/en/latest/modules/mouse.html#click
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×