Naively Programmable Module

    @percy/webdriverio
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.2 • Public • Published

    @percy/webdriverio

    Version Test

    Percy visual testing for WebdriverIO.

    Installation

    $ npm install --save-dev @percy/cli @percy/webdriverio

    Usage

    This is an example using the percySnapshot() function in async mode.

    const percySnapshot = require('@percy/webdriverio');
    
    describe('webdriver.io page', () => {
      it('should have the right title', async () => {
        await browser.url('https://webdriver.io');
        await expect(browser).toHaveTitle('WebdriverIO · Next-gen browser and mobile automation test framework for Node.js');
        await percySnapshot('webdriver.io page');
      });
    });

    Running the test above will result in the following log:

    $ wdio wdio.conf.js
    ...
    
    [...] webdriver.io page
    [percy] Percy is not running, disabling snapshots
    [...]    ✓ should have the right title
    
    ...

    When running with percy exec, and your project's PERCY_TOKEN, a new Percy build will be created and snapshots will be uploaded to your project.

    $ export PERCY_TOKEN=[your-project-token]
    $ percy exec -- wdio wdio.conf.js
    [percy] Percy has started!
    [percy] Created build #1: https://percy.io/[your-project]
    [percy] Running "wdio wdio.conf.js"
    ...
    
    [...] webdriver.io page
    [percy] Snapshot taken "webdriver.io page"
    [...]    ✓ should have the right title
    
    ...
    [percy] Stopping percy...
    [percy] Finalized build #1: https://percy.io/[your-project]
    [percy] Done!

    Standalone mode

    When using WebdriverIO in standalone mode, the browser object must be provided as the first argument to the percySnapshot function.

    const { remote } = require('webdriverio');
    const percySnapshot = require('@percy/webdriverio');
    
    (async () => {
      const browser = await remote({
        logLevel: 'trace',
        capabilities: {
          browserName: 'chrome'
        }
      });
    
      await browser.url('https://duckduckgo.com');
    
      const inputElem = await browser.$('#search_form_input_homepage');
      await inputElem.setValue('WebdriverIO');
    
      const submitBtn = await browser.$('#search_button_homepage');
      await submitBtn.click();
    
      // the browser object is required in standalone mode
      percySnapshot(browser, 'WebdriverIO at DuckDuckGo');
    
      await browser.deleteSession();
    })().catch((e) => console.error(e));

    Configuration

    percySnapshot(name[, options])

    percySnapshot(browser, name[, options]) (standalone mode only)

    Upgrading

    Automatically with @percy/migrate

    We built a tool to help automate migrating to the new CLI toolchain! Migrating can be done by running the following commands and following the prompts:

    $ npx @percy/migrate
    ? Are you currently using @percy/webdriverio? Yes
    ? Install @percy/cli (required to run percy)? Yes
    ? Migrate Percy config file? Yes
    ? Upgrade SDK to @percy/webdriverio@2.0.0? Yes

    This will automatically run the changes described below for you.

    Manually

    If you're coming from a pre-2.0 version of this package, the percySnapshot function is now the default export, and the browser argument is now only required when used in standalone mode.

    // before 
    const { percySnapshot } = require('@percy/webdriverio');
    await percySnapshot(browser, 'Snapshot name', options);
    
    // after
    const percySnapshot = require('@percy/webdriverio');
    await percySnapshot('Snapshot name', options);
    
    // in standalone mode, browser is still required
    await percySnapshot(browser, 'Snapshot name', options);

    Migrating Config

    If you have a previous Percy configuration file, migrate it to the newest version with the config:migrate command:

    $ percy config:migrate

    Install

    npm i @percy/webdriverio

    DownloadsWeekly Downloads

    5,701

    Version

    2.0.2

    License

    MIT

    Unpacked Size

    8.72 kB

    Total Files

    5

    Last publish

    Collaborators

    • wwilsman
    • robdel12
    • cadeparade
    • percy-admin
    • fotinakis
    • dgjones