casperjs, votre nouveau meilleur ami
TRANSCRIPT
![Page 1: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/1.jpg)
CASPERJSL'OUTILQUIVADEVENIRVOTRE
MEILLEURAMI!
ParisJS#34-25/02/2014
![Page 2: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/2.jpg)
QU'EST-CEQUECASPERJS?Unoutildescriptingwebetdetesting
Testsfonctionnels
InitialementunesurcouchedePhantomjs
![Page 3: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/3.jpg)
FAITESENTRERLEFANTOMEInstallerPhantomJs: http://phantomjs.org
InstallerCasperJs:
LancerCasper:allons-y!
http://casperjs.org
varcasper=require('casper').create({});
ComplètementCross/Plateformebonus:lescriptshellen1clicpourlesdistribGNU/Linux
![Page 4: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/4.jpg)
SUPPORTS...PhantomJspermetd'utiliserWebkitJs
SafariChrome&chromiumOpera
Firefox?=>CasperJssupportesSlimerJs
InternetExplorer?=> estenWIP,etgèreIE8+(\o/)TrifleJs
![Page 5: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/5.jpg)
TESTERDESFORMSvarcasper=require('casper').create({});//http://docs.casperjs.org/en/latest/quickstart.html#now-let-s-scrape-googlecasper.start('http://www.google.fr',function(){this.test.pass('AccesstoGoogleSearchEngineSuccess');});//Fillloginformandsubmitcasper.thenOpen('http://www.google.fr',function(){this.test.info('Currentlocationis'+this.getCurrentUrl());this.fill('form[action="/search"]',{q:'esgi'},true);});
Rechercher"esgi"dansGoogle
![Page 6: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/6.jpg)
CLIC&SUIVIDELIENSvarcasper=require('casper').create({});
//AccesstoGoogleSearchEngineFrancecasper.start('http://www.siteduzero.com/');casper.then(function(){//Clickon1stresultlinkthis.click('a[href="/conditions-generales-utilisation"]');});
//accesstoCGUpagecasper.then(function(){console.log('clickedok,newlocationis'+this.getCurrentUrl());});
AccéderàlapagedesCGUensuivantleclic
![Page 7: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/7.jpg)
REALISERDESSCREENSHOTS//Isgooglesearchenginereachable?casper.start('http://www.google.fr',function(){if(!this.test.assertHttpStatus(200,'http://www.google.fr')){//Screenshotifgoogleisunreachablethis.capture('error.png');}});casper.thenOpen('http://www.cockpit.airlines-manager.com',function(){this.test.assertTitle('AirlinesManager:jeuenlignedegestiongratuit','Ok,it\'sgood');});
Supportesjpg/png/gifet...PDFCasperJsest"CSS3-sélecteur"compatible™
![Page 8: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/8.jpg)
TESTSFONCTIONNELS//Isgooglesearchenginereachable?casper.test.begin('AtestSuite',2,functionsuite(test){casper.start('http://www.google.fr',function(){if(!test.assertHttpStatus(200,'http://www.google.fr')){//Screenshotifgoogleisunreachablethis.capture('error.png');}});casper.thenOpen('http://www.cockpit.airlines-manager.com',function(){test.assertTitle('AirlinesManager:jeuenlignedegestiongratuit','Ok,it\'sgood');});});
Disponibilitédelapage,d'élementsduDOM
![Page 9: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/9.jpg)
TESTSUNITAIRES//fromhttp://docs.casperjs.org/en/latest/modules/tester.html#assertinstanceoffunctionCow(){this.moo=functionmoo(){return'moo!';};}casper.test.begin('assertInstanceOf()tests',2,functionsuite(test){vardaisy=newCow();test.assertInstanceOf(daisy,Cow,"Ok,daisyisacow.");test.assertInstanceOf(["moo","boo"],Array,"Wecantestforarraystoo!");test.done();});
Bienmoinsbonque Mocha.js
![Page 10: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/10.jpg)
EXPORTSMULTIPLES
RetoursJUnit/console/(HTML)
![Page 11: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/11.jpg)
ACCEDERAUSHELL(?)//dosomecaspersjsstuff...varchildProcess;try{childProcess=require('child_process');}catch(e){casper.log(e,'error');}if(childProcess){childProcess.execFile('/bin/bash',['echo.sh','Hello','World'],null,function(err,stdout,stderr){casper.log('execFileSTDOUT:'+stdout,'debug');casper.log('execFileSTDERR:'+stderr,'debug');});casper.log('Done','debug');}else{casper.log('Unabletorequirechild_processnativemodule','warning');}
Etd'autresbizarreriesàdécouvrir:-)
![Page 12: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/12.jpg)
POURFINIR...Unesuperdocumentationcomplèteetàjour
Beaucoupdepossibilités:scripting,testing...
SortiesConsole&XML,"Jenkins-ready"
Vousenvoulezencoreplus?
![Page 13: CasperJs, votre nouveau meilleur ami](https://reader036.vdocuments.mx/reader036/viewer/2022081516/55a4e2dd1a28abf4648b4586/html5/thumbnails/13.jpg)
DESQUESTIONS??