What this book covers
Chapter 1, Getting Started with PhantomJS, introduces the PhantomJS browser and how to work with it from the shell. It covers installing PhantomJS and how to run it with different command-line arguments.
Chapter 2, PhantomJS Core Modules, discusses the core modules in PhantomJS, such as phantom
and system
, and covers how to use the fs
module to work with the filesystem. The chapter also explains how to create your own modules and load them into your PhantomJS scripts.
Chapter 3, Working with webpage Objects, introduces webpage objects and includes sophisticated strategies for dealing with web page content. You will learn how to interact with the page, simulate events, and capture those interactions for successful tests.
Chapter 4, Unit Testing with PhantomJS, explores how to use PhantomJS as an environment for JavaScript unit tests. This chapter focuses on the Jasmine BDD testing framework, but will also introduce two other popular frameworks, Mocha and QUnit.
Chapter 5, Functional and End-to-end Testing with PhantomJS, demonstrates functional and end-to-end testing strategies with PhantomJS. The chapter surveys several different functional testing tools, including Selenium, Poltergeist (a driver for Capybara), and CasperJS.
Chapter 6, Network Monitoring and Performance Analysis, illustrates how to perform automated performance analysis with PhantomJS. The chapter explores topics such as how to generate a HAR file for waterfall analysis, and how to use libraries such as confess.js and YSlow for automated performance analysis.
Chapter 7, Generating Images and Documents with PhantomJS, shows how to generate images and PDFs with PhantomJS. The chapter provides an overview of PhantomJS' built-in image rendering features and explains how to apply them.
Chapter 8, Continuous Integration with PhantomJS, demonstrates PhantomJS as part of a continuous integration (CI) strategy. The chapter surveys CI, using Jenkins as its specimen, and shows how to fail builds on that system, concluding with a recipe for comprehensive CI example.