0.46.1 • Published 1 month ago

@qavajs/steps-playwright v0.46.1

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

npm version

@qavajs/steps-playwright

Step library to work with playwright in qavajs framework

Installation

npm install @qavajs/steps-playwright

Configuration

const App = require('./page_object');
module.exports = {
    default: {
        require: [
            'node_modules/@qavajs/steps-playwright/index.js'
        ],
        browser: {
            timeout: {
                present: 10000,
                visible: 20000,
                page: 10000,
                value: 5000, // expect value timeout
                valueInterval: 500 //expect value interval
            },
            capabilities: {
                browserName: 'chromium'
            }
        },
        pageObject: new App()
    }
}

Global variables

@qavajs/steps-playwright exposes following global variables

variabletypedescription
browserBrowser \| ElectronApplicationbrowser instance
driverBrowser \| ElectronApplicationbrowser instance (alias for browser)
contextBrowserContextcurrent browser context
pagePagecurrent context page
browserManagerBrowserManagermanager to control all opened browsers and electron instances

Connect to playwright server

In order to connect to playwright server pass wsEndpoint property in capabilities object

module.exports = {
    default: {
        browser: {
            capabilities: {
                browserName: 'chromium',
                wsEndpoint: 'ws://127.0.0.1:60291/2bd48ce272de2b543e4c8c533f664b83'
            }
        },
    }
}

Connect to cdp endpoint

In order to connect to CDP endpoint pass cdpEndpoint property in capabilities object

module.exports = {
    default: {
        browser: {
            capabilities: {
                browserName: 'chromium',
                cdpEndpoint: 'http://localhost:9222/'
            }
        },
    }
}

Screenshot strategy

@qavajs/steps-playwright has build-in capability to take screenshot on particular event. If you need to add screenshot to your report add screenshot.event property to profile config. Supported events:

  • onFail
  • beforeStep
  • afterStep
module.exports = {
    default: {
        browser: {
            screenshot: {
                event: ['onFail'], //event to take screenshot
                fullPage: true // option to take full page screenshot (default false)
            }
        }
    }
}

Playwright traces

@qavajs support capturing playwright traces. https://playwright.dev/docs/next/trace-viewer-intro

Trace Viewer - https://trace.playwright.dev/

export default {
    //...
    browser: {
        trace: {
            event: ['onFail'], // Events to save trace. Possible value onFail or afterScenario 
            dir: 'dirToStoreTraces', // Dir to store traces. Default is traces/
            attach: true // Define if trace need to be attached to cucumber report. Default false
        }
    }
}

Video

export default {
    //...
    browser: {
        video: {
            event: ['onFail'], // Events to save video. Possible value onFail or afterScenario 
            dir: 'dirToStoreVideo', // Dir to store video. Default is video/
            size: { width: 640, height: 480 }, // Video resolution
            attach: true // Define if trace need to be attached to cucumber report. Default false
        }
    }
}

Typescript

To properly use globals exposed by @qavajs/steps-playwright add corresponding types to tsconfig.json

{
  "compilerOptions": {
    "types": [
      "@qavajs/steps-playwright/globals"
    ]
  }
}

reuseSession

reuseSession flag allows to share session between tests in frames of process. But setting of this flag transfers session control to user.

module.exports = {
    default: {
        browser: {
            reuseSession: true
        }
    }
}

restartBrowser

restartBrowser flag allows to restart browser between tests instead of default restarting context

module.exports = {
    default: {
        browser: {
            restartBrowser: true
        }
    }
}

Development and testing

Install dependencies npm install

Install playwright browsers install:browsers

Build lib npm run build

Execute unit test (with vitest) npm run test

Execute e2e browser tests npm run test:e2e

Execute e2e electron tests npm run test:e2e:electron

0.46.0

1 month ago

0.46.1

1 month ago

0.45.0

2 months ago

0.44.0

2 months ago

0.43.1

3 months ago

0.42.0

5 months ago

0.41.5

5 months ago

0.41.4

5 months ago

0.41.3

5 months ago

0.41.2

5 months ago

0.41.1

5 months ago

0.40.0

6 months ago

0.41.0

5 months ago

0.39.0

6 months ago

0.38.0

7 months ago

0.37.0

7 months ago

0.36.0

7 months ago

0.35.0

8 months ago

0.34.0

8 months ago

0.33.0

8 months ago

0.32.0

9 months ago

0.31.0

9 months ago

0.30.0

9 months ago

0.29.0

10 months ago

0.28.0

10 months ago

0.29.1

10 months ago

0.27.0

11 months ago

0.0.20

1 year ago

0.0.21

12 months ago

0.0.22

12 months ago

0.0.23

12 months ago

0.0.24

12 months ago

0.26.0

11 months ago

0.25.0

12 months ago

0.0.15

1 year ago

0.0.16

1 year ago

0.0.17

1 year ago

0.0.18

1 year ago

0.0.19

1 year ago

0.0.14

1 year ago

0.0.10

1 year ago

0.0.11

1 year ago

0.0.13

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago