SlideShare une entreprise Scribd logo
CasperJS
Découverte et
possibilités

Kevin Lion - http://www.inmediaveritas.com
Tests d’intégration, scraping
● Comment tester un site web facilement ?
○ Vérifier ces fonctionnalités ?
○ Vérifier un scénario de navigation ?

● Comment scraper du contenu sur des
sites full-javascript ?
Présentation
●
●
●
●

Basé sur PhantomJS
Navigateur HeadLess
API Javascript
Open Source
Un navigateur Headless ?
Que fait un navigateur ?
● Il télécharge une page HTML
● Il transforme ce contenu en DOM (exécute
le JS, CSS, etc.)
● Il affiche ce résultat au client

Recommandé pour vous

JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logicielle

Slide for my presentation at JugSummerCamp about integration of JavaScript in software factory. First trying to use Java Tools like Maven, then embrassing JavaScript Tools like Grunt and Bower.

jenkinsjavamaven
Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)

FRENCH - Slides presented at the OVH Meetup on the 4th April, about Servo the new parallized web browser developed at Mozilla Search. It stands as an example of project made in Rust: advantage of Rust, projects systems and contributions. This presentation was made by a Mozilla Reps and not an employee working on the project.

servomozillarust
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)

FRENCH - Talk made at the OVH Meetup on the 4th April, see the slides with the same name. This presentation was made by a Mozilla Reps and not an employee working on the project.

servoweb browsermozilla
Un navigateur Headless ?
Que fait un navigateur ?
● Il télécharge une page HTML -> Lynx !
● Il transforme ce contenu en DOM (exécute
le JS, CSS, etc.)
● Il affiche ce résultat au client
Un navigateur Headless ?
Que fait un navigateur ?
● Il télécharge une page HTML
● Il transforme ce contenu en DOM (exécute
le JS, CSS, etc.)
● Il affiche ce résultat au client -> Chrome
Un navigateur Headless ?
Que fait un navigateur ?
● Il télécharge une page HTML
● Il transforme ce contenu en DOM (exécute
le JS, CSS, etc.) -> Navigateur Headless !
● Il affiche ce résultat au client
CasperJS : exemple simple
var casper = require("casper").create();
casper.start('http://lacantine-toulouse.org/');
casper.then(function() {
this.echo('Title : ' + this.getTitle());
});
casper.run();

Recommandé pour vous

NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introduction

Présentation donnée à l'Aperotech Oxalide, le 24 juin 2013. Qu'est-ce que NodeJS ? pourquoi en parle-t-on autant ? quand l'utiliser ? qu'est-ce que l'asynchrone ? quelle est le contexte actuel du marché du js / NodeJS ?

nodejsserverwebsockets
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006

"Enfin", c'est le mot qu'on peut avoir à la découverte du framework web Ruby On Rails. Enfin un cadre de travail MVC qui facilité réellement le développement au lieu de le complexifier. ActiveRecord, une des briques magiques de cette application, pose une interface objet pour votre base de donnée en moins de cinq lignes. Le reste est à l'image de ruby : principe de surprise minimum, agilité et extensibilité. Cette présentation vous montrera, après des années de framework Web et d'expertises PHP, ce que quelques mois de Ruby On Rails suffisent à gagner.

railsrubyparis on rails
CasperJS : exemple de tests
var casper = require("casper").create();
casper.start('http://lacantine-toulouse.org/', function() {
this.test.assertTitle('La Cantine Toulouse', 'page title is correct');
});
casper.then(function() {
this.fill('form[method="post"]', {
input_login: 'admin',
input_password: 'dragon',
}, true);
});
casper.then(function() {
test.assertTextExists('Vous êtes bien connecté sur le site de La Cantine. Have fun !', 'you are connected');
});
casper.run();
CasperJS : exemple de scraper
var casper = require('casper').create();
casper.start('http://www.lemonde.fr/');
casper.then(function() {
this.click('article.titre_une a');
});
casper.then(function() {
this.echo(this.getHTML('div.articleBody'));
};
casper.run();
Autres fonctionnalités
● Gestion de son identité :
○ Fake UA, Proxy, résolution de l’écran, etc.

● Sélécteurs CSS ou XPath
● Insertion de librairies Javascript (jQuery...)
● Capture d’écran
Questions ?

Recommandé pour vous

Un navigateur, comment ça marche
Un navigateur, comment ça marche  Un navigateur, comment ça marche
Un navigateur, comment ça marche

Comment un navigateur interprète le code HTML - CSS - JAVASCRIPT

navigateurjavascriptmozilla
REX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerceREX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerce

Aniss Boumrigua nous a présenté comment à l'occasion d'une refonte globale ils ont réussi à optimiser les performances de leur site et ainsi améliorer drastiquement leur taux de transformation

webperfperfmatters
Jquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter BootstrapJquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter Bootstrap

Jquery Mobile vs Twitter Bootstrap

twitter bootstrapjquery mobile
kevin.lion@inmediaveritas.com
http://www.inmediaveritas.com
@inmediaveritas

Contenu connexe

Tendances

WebHookIt @parisjs #4
WebHookIt @parisjs #4WebHookIt @parisjs #4
WebHookIt @parisjs #4
Eric Abouaf
 
Adopter les web components avec stencil.js - Front Side
Adopter les web components avec stencil.js - Front SideAdopter les web components avec stencil.js - Front Side
Adopter les web components avec stencil.js - Front Side
Thomas Champion
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
Sonam TCHEUTSEUN
 
JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logicielle
jollivetc
 
Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)
Quentin Frémeaux
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)
Quentin Frémeaux
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introduction
Toxicode
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006
Eric D.
 
Un navigateur, comment ça marche
Un navigateur, comment ça marche  Un navigateur, comment ça marche
Un navigateur, comment ça marche
Mouhamadou Moustapha CAMARA
 
REX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerceREX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerce
Web Performance Paris
 
Jquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter BootstrapJquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter Bootstrap
ODC Orange Developer Center
 
YLT paris js - mars 2015
YLT paris js - mars 2015YLT paris js - mars 2015
YLT paris js - mars 2015
gaelmetais
 
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Eric D.
 
Les performances Web mobile
Les performances Web mobileLes performances Web mobile
Les performances Web mobile
Jean-Pierre Vincent
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node js
Horacio Gonzalez
 
Comment améliorer la performance de vos sites et applications web présen...
Comment améliorer la performance de vos sites et applications web    présen...Comment améliorer la performance de vos sites et applications web    présen...
Comment améliorer la performance de vos sites et applications web présen...
Roland Coma
 
Js, quoi de neuf ? - strasbourg js - septembre 2016
Js, quoi de neuf ? - strasbourg js - septembre 2016Js, quoi de neuf ? - strasbourg js - septembre 2016
Js, quoi de neuf ? - strasbourg js - septembre 2016
kraeger
 
Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010
Jean-Pierre Vincent
 
Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en production
Marc Boivin
 

Tendances (20)

WebHookIt @parisjs #4
WebHookIt @parisjs #4WebHookIt @parisjs #4
WebHookIt @parisjs #4
 
Adopter les web components avec stencil.js - Front Side
Adopter les web components avec stencil.js - Front SideAdopter les web components avec stencil.js - Front Side
Adopter les web components avec stencil.js - Front Side
 
Introduction à Node.js
Introduction à Node.js Introduction à Node.js
Introduction à Node.js
 
JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logicielle
 
Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)
 
Livre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JSLivre Blanc Web temps réel - Node JS
Livre Blanc Web temps réel - Node JS
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introduction
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006
 
Un navigateur, comment ça marche
Un navigateur, comment ça marche  Un navigateur, comment ça marche
Un navigateur, comment ça marche
 
REX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerceREX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerce
 
Jquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter BootstrapJquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter Bootstrap
 
YLT paris js - mars 2015
YLT paris js - mars 2015YLT paris js - mars 2015
YLT paris js - mars 2015
 
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
 
Les performances Web mobile
Les performances Web mobileLes performances Web mobile
Les performances Web mobile
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node js
 
Comment améliorer la performance de vos sites et applications web présen...
Comment améliorer la performance de vos sites et applications web    présen...Comment améliorer la performance de vos sites et applications web    présen...
Comment améliorer la performance de vos sites et applications web présen...
 
Js, quoi de neuf ? - strasbourg js - septembre 2016
Js, quoi de neuf ? - strasbourg js - septembre 2016Js, quoi de neuf ? - strasbourg js - septembre 2016
Js, quoi de neuf ? - strasbourg js - septembre 2016
 
Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010Retours sur le concours Webperf 2010
Retours sur le concours Webperf 2010
 
Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en production
 

En vedette

Detecter les bots
Detecter les botsDetecter les bots
Detecter les bots
Kévin Lion
 
Superfast Automated Web Testing with CasperJS & PhantomJS
Superfast Automated Web Testing with CasperJS & PhantomJS Superfast Automated Web Testing with CasperJS & PhantomJS
Superfast Automated Web Testing with CasperJS & PhantomJS
Hervé Vũ Roussel
 
CasperJS
CasperJSCasperJS
CasperJS
LearningTech
 
Mongrel2, a short introduction
Mongrel2, a short introductionMongrel2, a short introduction
Mongrel2, a short introduction
Paolo Negri
 
Why you should come to DrupalSouth
Why you should come to DrupalSouthWhy you should come to DrupalSouth
Why you should come to DrupalSouth
Chris Ward
 
Scaling Social Games
Scaling Social GamesScaling Social Games
Scaling Social Games
Paolo Negri
 
SimpleDb, an introduction
SimpleDb, an introductionSimpleDb, an introduction
SimpleDb, an introduction
Paolo Negri
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishContent Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Jani Tarvainen
 
A Documentation Crash Course, LinuxCon 2016
A Documentation Crash Course, LinuxCon 2016A Documentation Crash Course, LinuxCon 2016
A Documentation Crash Course, LinuxCon 2016
Chris Ward
 
Electron - Solving our cross platform dreams?
Electron - Solving our cross platform dreams?Electron - Solving our cross platform dreams?
Electron - Solving our cross platform dreams?
Chris Ward
 
Entrez dans le mouvement Maker à l’aide des technologies Microsoft
Entrez dans le mouvement Maker à l’aide des technologies MicrosoftEntrez dans le mouvement Maker à l’aide des technologies Microsoft
Entrez dans le mouvement Maker à l’aide des technologies Microsoft
Fabrice BARBIN
 
Offre développeur Javascript Back-end
Offre développeur Javascript Back-endOffre développeur Javascript Back-end
Offre développeur Javascript Back-end
Site Analyzer
 
Automate your docs, automate yourself
Automate your docs, automate yourselfAutomate your docs, automate yourself
Automate your docs, automate yourself
Chris Ward
 
Erlang introduction geek2geek Berlin
Erlang introduction geek2geek BerlinErlang introduction geek2geek Berlin
Erlang introduction geek2geek Berlin
Paolo Negri
 
Contentful Berlin Offices
Contentful Berlin OfficesContentful Berlin Offices
Contentful Berlin Offices
Irina Botea
 
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
Joe Gollner
 
AWS Lambda in infrastructure
AWS Lambda in infrastructureAWS Lambda in infrastructure
AWS Lambda in infrastructure
Paolo Negri
 
Le futur de Drupal et des applications web
Le futur de Drupal et des applications webLe futur de Drupal et des applications web
Le futur de Drupal et des applications web
Julien Dubreuil
 
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Paolo Negri
 
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Romain Linsolas
 

En vedette (20)

Detecter les bots
Detecter les botsDetecter les bots
Detecter les bots
 
Superfast Automated Web Testing with CasperJS & PhantomJS
Superfast Automated Web Testing with CasperJS & PhantomJS Superfast Automated Web Testing with CasperJS & PhantomJS
Superfast Automated Web Testing with CasperJS & PhantomJS
 
CasperJS
CasperJSCasperJS
CasperJS
 
Mongrel2, a short introduction
Mongrel2, a short introductionMongrel2, a short introduction
Mongrel2, a short introduction
 
Why you should come to DrupalSouth
Why you should come to DrupalSouthWhy you should come to DrupalSouth
Why you should come to DrupalSouth
 
Scaling Social Games
Scaling Social GamesScaling Social Games
Scaling Social Games
 
SimpleDb, an introduction
SimpleDb, an introductionSimpleDb, an introduction
SimpleDb, an introduction
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishContent Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
 
A Documentation Crash Course, LinuxCon 2016
A Documentation Crash Course, LinuxCon 2016A Documentation Crash Course, LinuxCon 2016
A Documentation Crash Course, LinuxCon 2016
 
Electron - Solving our cross platform dreams?
Electron - Solving our cross platform dreams?Electron - Solving our cross platform dreams?
Electron - Solving our cross platform dreams?
 
Entrez dans le mouvement Maker à l’aide des technologies Microsoft
Entrez dans le mouvement Maker à l’aide des technologies MicrosoftEntrez dans le mouvement Maker à l’aide des technologies Microsoft
Entrez dans le mouvement Maker à l’aide des technologies Microsoft
 
Offre développeur Javascript Back-end
Offre développeur Javascript Back-endOffre développeur Javascript Back-end
Offre développeur Javascript Back-end
 
Automate your docs, automate yourself
Automate your docs, automate yourselfAutomate your docs, automate yourself
Automate your docs, automate yourself
 
Erlang introduction geek2geek Berlin
Erlang introduction geek2geek BerlinErlang introduction geek2geek Berlin
Erlang introduction geek2geek Berlin
 
Contentful Berlin Offices
Contentful Berlin OfficesContentful Berlin Offices
Contentful Berlin Offices
 
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
The Anatomy of Content Management (workshop by J Gollner at Intelligent Conte...
 
AWS Lambda in infrastructure
AWS Lambda in infrastructureAWS Lambda in infrastructure
AWS Lambda in infrastructure
 
Le futur de Drupal et des applications web
Le futur de Drupal et des applications webLe futur de Drupal et des applications web
Le futur de Drupal et des applications web
 
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
Distributed and concurrent programming with RabbitMQ and EventMachine Rails U...
 
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
 

Similaire à CasperJS

AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontend
yllieth
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
Horacio Gonzalez
 
Inclure du Javascript de manière performante
Inclure du Javascript de manière performanteInclure du Javascript de manière performante
Inclure du Javascript de manière performante
Jean-Pierre Vincent
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
Horacio Gonzalez
 
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
Fasterize
 
10 conseils pour booster les performances de votre site sous WordPress
10 conseils pour booster les performances de votre site sous WordPress10 conseils pour booster les performances de votre site sous WordPress
10 conseils pour booster les performances de votre site sous WordPress
Aurélien Denis
 
Convention Medialibs : Raphaël Goetter (Introduction à la performance web)
Convention Medialibs : Raphaël Goetter (Introduction  à la performance web)Convention Medialibs : Raphaël Goetter (Introduction  à la performance web)
Convention Medialibs : Raphaël Goetter (Introduction à la performance web)
Medialibs
 
Introduction à la performance web
Introduction à la performance webIntroduction à la performance web
Introduction à la performance web
Raphaël Goetter
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-side
maru.maru
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Horacio Gonzalez
 
Améliorer la rapidité de son site web
Améliorer la rapidité de son site webAméliorer la rapidité de son site web
Améliorer la rapidité de son site web
Emmanuel Gautier
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?
Frédéric Harper
 
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
Peak Ace
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JSENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
Horacio Gonzalez
 
SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...
SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...
SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...
RESONEO
 
RennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostRennesJS Talk webperf by Dareboost
RennesJS Talk webperf by Dareboost
Damien Jubeau
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
codedarmor
 
Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...
Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...
Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...
SEO CAMP
 

Similaire à CasperJS (20)

AngularJS et autres techno frontend
AngularJS et autres techno frontendAngularJS et autres techno frontend
AngularJS et autres techno frontend
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
 
Inclure du Javascript de manière performante
Inclure du Javascript de manière performanteInclure du Javascript de manière performante
Inclure du Javascript de manière performante
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
 
Html5 now light
Html5 now lightHtml5 now light
Html5 now light
 
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
 
10 conseils pour booster les performances de votre site sous WordPress
10 conseils pour booster les performances de votre site sous WordPress10 conseils pour booster les performances de votre site sous WordPress
10 conseils pour booster les performances de votre site sous WordPress
 
Convention Medialibs : Raphaël Goetter (Introduction à la performance web)
Convention Medialibs : Raphaël Goetter (Introduction  à la performance web)Convention Medialibs : Raphaël Goetter (Introduction  à la performance web)
Convention Medialibs : Raphaël Goetter (Introduction à la performance web)
 
Introduction à la performance web
Introduction à la performance webIntroduction à la performance web
Introduction à la performance web
 
jQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-sidejQuery mobile / PhoneGap : contenus dynamiques client-side
jQuery mobile / PhoneGap : contenus dynamiques client-side
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
 
Améliorer la rapidité de son site web
Améliorer la rapidité de son site webAméliorer la rapidité de son site web
Améliorer la rapidité de son site web
 
HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?HTML5 et Internet Explorer 9, est-ce réellement compatible?
HTML5 et Internet Explorer 9, est-ce réellement compatible?
 
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
Les bonnes pratiques SEO avec les frameworks javascript - SEO CAMPUS 9 mars 2017
 
SAPIENS2009 - Module 4B
SAPIENS2009 - Module 4BSAPIENS2009 - Module 4B
SAPIENS2009 - Module 4B
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JSENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
 
SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...
SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...
SEO campus 2019 | Les clés d’un site web (beaucoup) plus rapide selon des fac...
 
RennesJS Talk webperf by Dareboost
RennesJS Talk webperf by DareboostRennesJS Talk webperf by Dareboost
RennesJS Talk webperf by Dareboost
 
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et JavascriptCodedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
Codedarmor 2012 - 06/03 - HTML5, CSS3 et Javascript
 
Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...
Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...
Les clés d’un site (beaucoup) plus rapide selon des facteurs qui restent trop...
 

CasperJS

  • 1. CasperJS Découverte et possibilités Kevin Lion - http://www.inmediaveritas.com
  • 2. Tests d’intégration, scraping ● Comment tester un site web facilement ? ○ Vérifier ces fonctionnalités ? ○ Vérifier un scénario de navigation ? ● Comment scraper du contenu sur des sites full-javascript ?
  • 4. Un navigateur Headless ? Que fait un navigateur ? ● Il télécharge une page HTML ● Il transforme ce contenu en DOM (exécute le JS, CSS, etc.) ● Il affiche ce résultat au client
  • 5. Un navigateur Headless ? Que fait un navigateur ? ● Il télécharge une page HTML -> Lynx ! ● Il transforme ce contenu en DOM (exécute le JS, CSS, etc.) ● Il affiche ce résultat au client
  • 6. Un navigateur Headless ? Que fait un navigateur ? ● Il télécharge une page HTML ● Il transforme ce contenu en DOM (exécute le JS, CSS, etc.) ● Il affiche ce résultat au client -> Chrome
  • 7. Un navigateur Headless ? Que fait un navigateur ? ● Il télécharge une page HTML ● Il transforme ce contenu en DOM (exécute le JS, CSS, etc.) -> Navigateur Headless ! ● Il affiche ce résultat au client
  • 8. CasperJS : exemple simple var casper = require("casper").create(); casper.start('http://lacantine-toulouse.org/'); casper.then(function() { this.echo('Title : ' + this.getTitle()); }); casper.run();
  • 9. CasperJS : exemple de tests var casper = require("casper").create(); casper.start('http://lacantine-toulouse.org/', function() { this.test.assertTitle('La Cantine Toulouse', 'page title is correct'); }); casper.then(function() { this.fill('form[method="post"]', { input_login: 'admin', input_password: 'dragon', }, true); }); casper.then(function() { test.assertTextExists('Vous êtes bien connecté sur le site de La Cantine. Have fun !', 'you are connected'); }); casper.run();
  • 10. CasperJS : exemple de scraper var casper = require('casper').create(); casper.start('http://www.lemonde.fr/'); casper.then(function() { this.click('article.titre_une a'); }); casper.then(function() { this.echo(this.getHTML('div.articleBody')); }; casper.run();
  • 11. Autres fonctionnalités ● Gestion de son identité : ○ Fake UA, Proxy, résolution de l’écran, etc. ● Sélécteurs CSS ou XPath ● Insertion de librairies Javascript (jQuery...) ● Capture d’écran