Package Exports
- @serenity-js/protractor
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@serenity-js/protractor) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Serenity/JS
Serenity/JS is a Node.js library designed to make acceptance and regression testing of modern full-stack applications faster, more collaborative and easier to scale.
Serenity/JS Protractor
The @serenity-js/protractor
module is a Screenplay Patter-style adapter for the Protractor framework, which helps with testing Angular, React, Vue and other frontend web apps.
Configuring Protractor
// protractor.conf.js
// Import the Serenity/JS reporting services, a.k.a. the "Stage Crew Members"
const
{ ArtifactArchiver } = require('@serenity-js/core'),
{ ConsoleReporter } = require('@serenity-js/console-reporter'),
{ Photographer, TakePhotosOfFailures, TakePhotosOfInteractions } = require('@serenity-js/protractor'),
{ SerenityBDDReporter } = require('@serenity-js/serenity-bdd');
exports.config = {
// Tell Protractor to use the Serenity/JS framework Protractor Adapter
framework: 'custom',
frameworkPath: require.resolve('@serenity-js/protractor/adapter'),
// Configure Serenity/JS to use an appropriate test runner
// and the Stage Crew Members we've imported at the top of this file
serenity: {
runner: 'jasmine',
// runner: 'cucumber',
// runner: 'mocha',
crew: [
ArtifactArchiver.storingArtifactsAt('./target/site/serenity'),
ConsoleReporter.forDarkTerminals(),
Photographer.whoWill(TakePhotosOfFailures), // or Photographer.whoWill(TakePhotosOfInteractions),
new SerenityBDDReporter(),
]
},
// configure Cucumber runner
cucumberOpts: {
// see the Cucumber configuration options below
},
// or configure Jasmine runner
jasmineNodeOpts: {
// see the Jasmine configuration options below
},
// or configure Mocha runner
mochaOpts: {
// see the Mocha configuration options below
},
// ... other Protractor-specific configuration
};
Learn more about:
- Cucumber configuration options
- Jasmine configuration options
- Mocha configuration options
- Protractor configuration file.
Interacting with websites and web apps
import { actorCalled } from '@serenity-js/core';
import { Ensure, equals } from '@serenity-js/assertions';
import { BrowseTheWeb, Navigate, Target, Text } from '@serenity-js/protractor';
import { protractor, by } from 'protractor';
class SerenityJSWebsite {
static header = Target.the('header').located(by.css('h1'));
}
actorCalled('Priya')
.whoCan(
BrowseTheWeb.using(protractor.browser_download_url)
)
.attemptsTo(
Navigate.to('https://serenity-js.org'),
Ensure.that(Text.of(SerenityJSWebsite.header), equals('Next generation acceptance testing')),
)
Template Repositories
The easiest way for you to start writing web-based acceptance tests using Serenity/JS, Protractor and either Mocha, Cucumber or Jasmine is by using one of the below template repositories: