mirror of
https://github.com/zulip/zulip.git
synced 2025-11-13 18:36:36 +00:00
Update casperjs to 1.0.2.
(imported from commit 9e34b51c4588dce6419ea86024b2e8c06346a685)
This commit is contained in:
@@ -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 = ->
|
||||
|
||||
@@ -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");
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/*jshint strict:false*/
|
||||
/*global CasperError console phantom require*/
|
||||
|
||||
var casper = require("casper").create();
|
||||
var dump = require("utils").dump;
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/*jshint strict:false*/
|
||||
/*global CasperError console phantom require*/
|
||||
|
||||
var casper = require("casper").create();
|
||||
|
||||
// listening to a custom event
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
/*
|
||||
/*jshint strict:false*/
|
||||
/*global CasperError console phantom require*/
|
||||
|
||||
/**
|
||||
* download the google logo image onto the local filesystem
|
||||
*/
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/*jshint strict:false*/
|
||||
/*global CasperError console phantom require*/
|
||||
|
||||
var casper = require("casper").create({
|
||||
verbose: true
|
||||
});
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/*jshint strict:false*/
|
||||
/*global CasperError console phantom require*/
|
||||
|
||||
var casper = require("casper").create();
|
||||
|
||||
var links = [
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/*jshint strict:false*/
|
||||
/*global CasperError console phantom require*/
|
||||
var links = [];
|
||||
var casper = require("casper").create();
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/*jshint strict:false*/
|
||||
/*global CasperError console phantom require*/
|
||||
|
||||
var casper = require("casper").create({
|
||||
logLevel: "debug"
|
||||
});
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/*jshint strict:false*/
|
||||
/*global CasperError console phantom require*/
|
||||
|
||||
var casper = require("casper").create({
|
||||
verbose: true,
|
||||
logLevel: "debug"
|
||||
|
||||
@@ -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 = [];
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/*jshint strict:false*/
|
||||
/*global CasperError console phantom require*/
|
||||
|
||||
var casper = require("casper").create({
|
||||
verbose: true
|
||||
});
|
||||
|
||||
@@ -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}"
|
||||
), (->
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/*jshint strict:false*/
|
||||
/*global CasperError console phantom require*/
|
||||
|
||||
var failed = [];
|
||||
var start = null;
|
||||
var links = [
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
/*
|
||||
/*jshint strict:false*/
|
||||
/*global CasperError console phantom require*/
|
||||
|
||||
/**
|
||||
* Just a silly game.
|
||||
*
|
||||
* $ casperjs samples/timeout.js 500
|
||||
|
||||
23
zephyr/tests/frontend/casperjs/samples/translate.coffee
Normal file
23
zephyr/tests/frontend/casperjs/samples/translate.coffee
Normal 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()
|
||||
30
zephyr/tests/frontend/casperjs/samples/translate.js
Normal file
30
zephyr/tests/frontend/casperjs/samples/translate.js
Normal 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();
|
||||
Reference in New Issue
Block a user