Nefarious Pomegranate Magnate

    TypeScript icon, indicating that this package has built-in type declarations

    2.33.8 • Public • Published


    Serenity/JS is a framework designed to make acceptance and regression testing of modern full-stack applications faster, more collaborative and easier to scale.

    Visit for the latest tutorials and API docs, and follow @SerenityJS and @JanMolak on Twitter for project updates.

    Twitter Follow Twitter Follow Chat on Gitter

    Subscribe to Serenity/JS YouTube channel to get notified when new demos and video tutorials are available.

    Learning Serenity/JS

    To learn more about Serenity/JS, follow the tutorial, review the examples, and create your own test suite with Serenity/JS template projects.

    If you have any questions, join us on Serenity/JS Community Chat.

    Serenity/JS WebdriverIO

    @serenity-js/webdriverio module is a Screenplay Pattern-style adapter for WebdriverIO, that helps with testing Web-based and mobile apps.


    To install this module, run the following command in your WebdriverIO project directory:

    npm install --save-dev @serenity-js/{core,webdriverio}

    Next, install one of the below test runner adapters.

    Usage with Cucumber.js

    To use Serenity/JS WebdriverIO with Cucumber.js, install the following adapter:

    npm install --save-dev @serenity-js/cucumber

    Please note that Serenity/JS WebdriverIO / Cucumber integration supports both Serenity/JS reporting services and native Cucumber.js reporters.

    Usage with Jasmine

    To use Serenity/JS WebdriverIO with Jasmine, install the following adapter:

    npm install --save-dev @serenity-js/jasmine

    Usage with Mocha

    To use Serenity/JS WebdriverIO with Mocha, install the following adapter:

    npm install --save-dev @serenity-js/mocha

    Configuring Webdriverio

    // wdio.conf.ts
    // Import Serenity/JS reporting services, a.k.a. the "Stage Crew Members"
    import { ArtifactArchiver } from '@serenity-js/core';
    import { ConsoleReporter } from '@serenity-js/console-reporter';
    import { SerenityBDDReporter } from '@serenity-js/serenity-bdd';
    import { Photographer, TakePhotosOfFailures, WebdriverIOConfig } from '@serenity-js/webdriverio';
    export const config: WebdriverIOConfig = {
        // Tell WebdriverIO to use Serenity/JS framework
        framework: '@serenity-js/webdriverio',
        serenity: {
            // Configure Serenity/JS to use an appropriate test runner adapter
            runner: 'cucumber',
            // runner: 'mocha',
            // runner: 'jasmine',
            // Register StageCrewMembers we've imported at the top of this file    
            crew: [
                ArtifactArchiver.storingArtifactsAt(process.cwd(), 'target/site/serenity'),
                new SerenityBDDReporter(),
        // configure Cucumber runner
        cucumberOpts: {
            // see the Cucumber configuration options below
        // or Jasmine runner
        jasmineOpts: {
            // see the Jasmine configuration options below
        // or Mocha runner
        mochaOpts: {
            // see the Mocha configuration options below
        specs: [
            // load Cucumber feature files
            // or Mocha/Jasmine spec files 
            // './spec/**/*.spec.ts',
        // add any additional native WebdriverIO reports
        // reporters: [
        //     'spec',
        // ],
        // ... other WebdriverIO-specific configuration   

    Learn more about:

    Interacting with websites and web apps

    import { actorCalled } from '@serenity-js/core';
    import { Ensure, equals } from '@serenity-js/assertions';
    import { by, BrowseTheWeb, Navigate, Target, Text } from '@serenity-js/webdriverio';
    class SerenityJSWebsite {
        static header = Target.the('header').located(by.css('h1'));
                equals('Next generation acceptance testing')

    To learn more, check out the example projects.

    Template Repositories

    The easiest way for you to start writing web-based acceptance tests using Serenity/JS, WebdriverIO and either Mocha, Cucumber or Jasmine is by using one of the below template repositories:

    More coming soon!

    New features, tutorials, and demos are coming soon, so follow us on Twitter and join the Serenity/JS Community chat channel to stay up to date!

    Twitter Follow Twitter Follow Chat on Gitter


    npm i @serenity-js/webdriverio

    DownloadsWeekly Downloads






    Unpacked Size

    546 kB

    Total Files


    Last publish


    • jan-molak