Update casperjs to 1.0.2.

(imported from commit 9e34b51c4588dce6419ea86024b2e8c06346a685)
This commit is contained in:
Tim Abbott
2013-03-05 11:10:02 -05:00
parent d1fb74e627
commit eadb2ea6d3
116 changed files with 2757 additions and 745 deletions

View File

@@ -11,7 +11,7 @@ images = []
casper.hide = (selector) ->
@evaluate (selector) ->
document.querySelector(selector).style.display = "none"
, selector: selector
, selector
casper.start "http://www.bbc.co.uk/", ->
nbLinks = @evaluate ->
@@ -21,15 +21,16 @@ casper.start "http://www.bbc.co.uk/", ->
@hide ".nav_left"
@hide ".nav_right"
@mouse.move "#promo2_carousel"
@waitUntilVisible ".autoplay.nav_pause", ->
@echo "Moving over pause button"
@mouse.move ".autoplay.nav_pause"
@click ".autoplay.nav_pause"
@echo "Clicked on pause button"
@waitUntilVisible ".autoplay.nav_play", ->
@echo "Carousel has been paused"
# hide play button
@hide ".autoplay"
casper.waitUntilVisible ".autoplay.nav_pause", ->
@echo "Moving over pause button"
@mouse.move ".autoplay.nav_pause"
@click ".autoplay.nav_pause"
@echo "Clicked on pause button"
@waitUntilVisible ".autoplay.nav_play", ->
@echo "Carousel has been paused"
# hide play button
@hide ".autoplay"
# Capture carrousel area
next = ->

View File

@@ -1,7 +1,9 @@
/*
/*jshint strict:false*/
/*global CasperError console phantom require*/
/**
* Create a mosaic image from all headline photos on BBC homepage
*/
var casper = require("casper").create();
var nbLinks = 0;
var currentLink = 1;
@@ -12,9 +14,7 @@ var buildPage, next;
casper.hide = function(selector) {
this.evaluate(function(selector) {
document.querySelector(selector).style.display = "none";
}, {
selector: selector
});
}, selector);
};
casper.start("http://www.bbc.co.uk/", function() {
@@ -26,16 +26,17 @@ casper.start("http://www.bbc.co.uk/", function() {
this.hide(".nav_left");
this.hide(".nav_right");
this.mouse.move("#promo2_carousel");
this.waitUntilVisible(".autoplay.nav_pause", function() {
this.echo("Moving over pause button");
this.mouse.move(".autoplay.nav_pause");
this.click(".autoplay.nav_pause");
this.echo("Clicked on pause button");
this.waitUntilVisible(".autoplay.nav_play", function() {
this.echo("Carousel has been paused");
// hide play button
this.hide(".autoplay");
});
});
casper.waitUntilVisible(".autoplay.nav_pause", function() {
this.echo("Moving over pause button");
this.mouse.move(".autoplay.nav_pause");
this.click(".autoplay.nav_pause");
this.echo("Clicked on pause button");
this.waitUntilVisible(".autoplay.nav_play", function() {
this.echo("Carousel has been paused");
// hide play button
this.hide(".autoplay");
});
});

View File

@@ -1,3 +1,6 @@
/*jshint strict:false*/
/*global CasperError console phantom require*/
var casper = require("casper").create();
var dump = require("utils").dump;

View File

@@ -1,3 +1,6 @@
/*jshint strict:false*/
/*global CasperError console phantom require*/
var casper = require("casper").create();
// listening to a custom event

View File

@@ -2,29 +2,27 @@
A basic custom logging implementation. The idea is to (extremely) verbosely
log every received resource.
###
casper = require("casper").create
###
Every time a resource is received, a new log entry is added to the stack
at the 'verbose' level.
@param Object resource A phantomjs resource object
###
onResourceReceived: (self, resource) ->
infos = []
props = [
"url"
"status"
"statusText"
"redirectURL"
"bodySize"
]
infos.push resource[prop] for prop in props
infos.push "[#{header.name}: #{header.value}]" for header in resource.headers
@log infos.join(", "), "verbose"
verbose: true # we want to see the log printed out to the console
logLevel: "verbose" # of course we want to see logs to our new level :)
###
Every time a resource is received, a new log entry is added to the stack
at the 'verbose' level.
###
casper.on 'resource.received', (resource) ->
infos = []
props = [
"url"
"status"
"statusText"
"redirectURL"
"bodySize"
]
infos.push resource[prop] for prop in props
infos.push "[#{header.name}: #{header.value}]" for header in resource.headers
@log infos.join(", "), "verbose"
# add a new 'verbose' logging level at the lowest priority
casper.logLevels = ["verbose"].concat casper.logLevels

View File

@@ -1,38 +1,37 @@
/*
/*jshint strict:false*/
/*global CasperError console phantom require*/
/**
* A basic custom logging implementation. The idea is to (extremely) verbosely
* log every received resource.
*/
var casper = require("casper").create({
/*
Every time a resource is received, a new log entry is added to the stack at
the 'verbose' level.
*/
onResourceReceived: function(self, resource) {
var header, infos, prop, props, _i, _j, _len, _len1, _ref;
infos = [];
props = [
"url",
"status",
"statusText",
"redirectURL",
"bodySize"
];
for (_i = 0, _len = props.length; _i < _len; _i++) {
prop = props[_i];
infos.push(resource[prop]);
}
_ref = resource.headers;
for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
header = _ref[_j];
infos.push("[" + header.name + ": " + header.value + "]");
}
this.log(infos.join(", "), "verbose");
},
verbose: true,
logLevel: "verbose"
});
/**
* Every time a resource is received, a new log entry is added to the stack at
* the 'verbose' level.
*/
casper.on('resource.received', function(resource) {
var infos = [];
var props = [
"url",
"status",
"statusText",
"redirectURL",
"bodySize"
];
props.forEach(function(prop) {
infos.push(resource[prop]);
});
resource.headers.forEach(function(header) {
infos.push("[" + header.name + ": " + header.value + "]");
});
this.log(infos.join(", "), "verbose");
});
// add a new 'verbose' logging level at the lowest priority
casper.logLevels = ["verbose"].concat(casper.logLevels);

View File

@@ -1,4 +1,7 @@
/*
/*jshint strict:false*/
/*global CasperError console phantom require*/
/**
* download the google logo image onto the local filesystem
*/

View File

@@ -1,3 +1,6 @@
/*jshint strict:false*/
/*global CasperError console phantom require*/
var casper = require("casper").create({
verbose: true
});

View File

@@ -1,3 +1,6 @@
/*jshint strict:false*/
/*global CasperError console phantom require*/
var casper = require("casper").create();
var links = [

View File

@@ -1,7 +1,9 @@
/*
/*jshint strict:false*/
/*global CasperError console phantom require*/
/**
* This script will add a custom HTTP status code handler, here for 404 pages.
*/
var casper = require("casper").create();
casper.on("http.status.200", function(resource) {

View File

@@ -1,3 +1,6 @@
/*jshint strict:false*/
/*global CasperError console phantom require*/
var casper = require("casper").create({
loadImages: false,
logLevel: "debug",
@@ -34,4 +37,4 @@ Object.keys(links).forEach(function(url) {
fantomas.run(function() {
this.renderJSON(links);
this.exit();
});
});

View File

@@ -1,3 +1,5 @@
/*jshint strict:false*/
/*global CasperError console phantom require*/
var links = [];
var casper = require("casper").create();

View File

@@ -14,7 +14,7 @@ casper = require("casper").create verbose: true
casper.fetchScore = ->
@evaluate ->
result = document.querySelector('#resultStats').innerText
result = __utils__.findOne('#resultStats').innerText
parseInt /Environ ([0-9\s]{1,}).*/.exec(result)[1].replace(/\s/g, '')
terms = casper.cli.args # terms are passed through command-line arguments

View File

@@ -1,4 +1,7 @@
/*
/*jshint strict:false*/
/*global CasperError console phantom require*/
/**
* Takes provided terms passed as arguments and query google for the number of
* estimated results each have.
*
@@ -16,7 +19,7 @@ var casper = require("casper").create({
casper.fetchScore = function() {
return this.evaluate(function() {
var result = document.querySelector('#resultStats').innerText;
var result = __utils__.findOne('#resultStats').innerText;
return parseInt(/Environ ([0-9\s]{1,}).*/.exec(result)[1].replace(/\s/g, ''), 10);
});
};

View File

@@ -1,4 +1,7 @@
/*
/*jshint strict:false*/
/*global CasperError console phantom require*/
/**
* Capture multiple pages of google search results
*
* Usage: $ casperjs googlepagination.coffee my search terms

View File

@@ -1,3 +1,6 @@
/*jshint strict:false*/
/*global CasperError console phantom require*/
var casper = require("casper").create({
logLevel: "debug"
});

View File

@@ -1,3 +1,6 @@
/*jshint strict:false*/
/*global CasperError console phantom require*/
var casper = require("casper").create({
verbose: true,
logLevel: "debug"

View File

@@ -1,3 +1,6 @@
/*jshint strict:false*/
/*global CasperError console phantom require*/
var casper = require("casper").create();
var url = casper.cli.get(0);
var metas = [];

View File

@@ -1,3 +1,6 @@
/*jshint strict:false*/
/*global CasperError console phantom require*/
var casper = require("casper").create({
verbose: true
});

View File

@@ -16,8 +16,8 @@ if not twitterAccount or not filename or not /\.(png|jpg|pdf)$/i.test filename
.echo("Usage: $ casperjs screenshot.coffee <twitter-account> <filename.[jpg|png|pdf]>")
.exit(1)
casper.start "https://twitter.com/#!/#{twitterAccount}", ->
@waitForSelector ".tweet-row", (->
casper.start "https://twitter.com/#{twitterAccount}", ->
@waitForSelector ".stream-container", (->
@captureSelector filename, "html"
@echo "Saved screenshot of #{@getCurrentUrl()} to #{filename}"
), (->

View File

@@ -1,6 +1,9 @@
/*
/*jshint strict:false*/
/*global CasperError console phantom require*/
/**
* This script will capture a screenshot of a twitter account page
* Usage: $ casperjs screenshot.coffee <twitter-account> <filename.[jpg|png|pdf]>
* Usage: $ casperjs screenshot.js <twitter-account> <filename.[jpg|png|pdf]>
*/
var casper = require("casper").create({
@@ -15,13 +18,13 @@ var filename = casper.cli.get(1);
if (!twitterAccount || !filename || !/\.(png|jpg|pdf)$/i.test(filename)) {
casper
.echo("Usage: $ casperjs screenshot.coffee <twitter-account> <filename.[jpg|png|pdf]>")
.echo("Usage: $ casperjs screenshot.js <twitter-account> <filename.[jpg|png|pdf]>")
.exit(1)
;
}
casper.start("https://twitter.com/#!/" + twitterAccount, function() {
this.waitForSelector(".tweet-row", (function() {
casper.start("https://twitter.com/" + twitterAccount, function() {
this.waitForSelector(".stream-container", (function() {
this.captureSelector(filename, "html");
this.echo("Saved screenshot of " + (this.getCurrentUrl()) + " to " + filename);
}), (function() {

View File

@@ -1,4 +1,7 @@
/*
/*jshint strict:false*/
/*global CasperError console phantom require*/
/**
* This script will add a custom HTTP status code handler, here for 404 pages.
*/

View File

@@ -1,3 +1,6 @@
/*jshint strict:false*/
/*global CasperError console phantom require*/
var failed = [];
var start = null;
var links = [

View File

@@ -1,4 +1,7 @@
/*
/*jshint strict:false*/
/*global CasperError console phantom require*/
/**
* Just a silly game.
*
* $ casperjs samples/timeout.js 500

View File

@@ -0,0 +1,23 @@
###
Translation using the Google Translate Service.
Usage:
$ casperjs translate.coffee --target=fr "hello world"
bonjour tout le monde
###
system = require("system")
casper = require("casper").create()
format = require("utils").format
source = casper.cli.get("source") or "auto"
target = casper.cli.get("target")
text = casper.cli.get(0)
result = undefined
casper.warn("The --target option is mandatory.").exit 1 unless target
casper.start(format("http://translate.google.com/#%s/%s/%s", source, target, text), ->
@fill "form#gt-form", text: text
).waitForSelector "span.hps", -> @echo @fetchText("#result_box")
casper.run()

View File

@@ -0,0 +1,30 @@
/*jshint strict:false*/
/*global CasperError console phantom require*/
/**
* Translation using the Google Translate Service.
*
* Usage:
*
* $ casperjs translate.js --target=fr "hello world"
* bonjour tout le monde
*/
var system = require('system'),
casper = require('casper').create(),
format = require('utils').format,
source = casper.cli.get('source') || 'auto',
target = casper.cli.get('target'),
text = casper.cli.get(0),
result;
if (!target) {
casper.warn('The --target option is mandatory.').exit(1);
}
casper.start(format('http://translate.google.com/#%s/%s/%s', source, target, text), function() {
this.fill('form#gt-form', {text: text});
}).waitForSelector('span.hps', function() {
this.echo(this.fetchText("#result_box"));
});
casper.run();