
Research
/Security News
Mini Shai-Hulud Campaign Hits Red Hat Cloud Services npm Packages
A mini Shai-Hulud campaign compromised Red Hat Cloud Services npm packages to steal developer and CI/CD secrets during installation.
@qavajs/steps-playwright
Advanced tools
@qavajs/steps-playwright provides a comprehensive set of pre-built step definitions for qavajs, powered by Playwright.
It enables easy and efficient browser automation in a behavior-driven development (BDD) style using Cucumber syntax.
@qavajs/corenpm install @qavajs/steps-playwright
import App from './page_object'
export default {
require: [
'node_modules/@qavajs/steps-playwright/index.js'
],
browser: {
timeout: {
action: 10000, // playwright action timeout
present: 10000,
visible: 20000,
page: 10000,
value: 5000, // expect value timeout
valueInterval: 500, // expect value interval
pageRefreshInterval: 2000 // refresh page for 'I refresh page...' steps
},
capabilities: {
browserName: 'chromium',
headless: true
}
},
pageObject: new App()
}
@qavajs/steps-playwright exposes following to step context
| variable | type | description |
|---|---|---|
this.playwright.browser | Browser | ElectronApplication | browser instance |
this.playwright.driver | Browser | ElectronApplication | browser instance (alias for browser) |
this.playwright.context | BrowserContext | current browser context |
this.playwright.page | Page | current context page |
In order to connect to playwright server pass wsEndpoint property in capabilities object
export default {
browser: {
capabilities: {
browserName: 'chromium',
wsEndpoint: 'ws://127.0.0.1:60291/2bd48ce272de2b543e4c8c533f664b83'
}
},
}
In order to connect to CDP endpoint pass cdpEndpoint property in capabilities object
export default {
browser: {
capabilities: {
browserName: 'chromium',
cdpEndpoint: 'http://localhost:9222/'
}
},
}
@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:
export default {
browser: {
screenshot: {
event: ['onFail'], //event to take screenshot
fullPage: true // option to take full page screenshot (default false)
}
}
}
@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 - traces/
attach: true, // Whether trace need to be attached to cucumber report. Default - false
screenshots: true, // Whether to capture screenshots during tracing. Screenshots are used to build a timeline preview. Default - true
snapshots: true, // Whether to capture DOM and network activity
}
}
}
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
}
}
}
reuseSession flag allows to share session between tests in frames of process. But setting of this flag
transfers session control to user.
export default {
browser: {
reuseSession: true
}
}
restartBrowser flag allows to restart browser between tests instead of default restarting context
export default {
browser: {
restartBrowser: true
}
}
Install dependencies
npm install
Install playwright browsers
npm 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`
FAQs
qavajs steps to interact with playwright
The npm package @qavajs/steps-playwright receives a total of 130 weekly downloads. As such, @qavajs/steps-playwright popularity was classified as not popular.
We found that @qavajs/steps-playwright demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
A mini Shai-Hulud campaign compromised Red Hat Cloud Services npm packages to steal developer and CI/CD secrets during installation.

Research
/Security News
The North Korean malware loader hides in a Packagist-listed package and its GitHub branch to fetch and execute remote code in a likely Contagious Interview-style lure.

Security News
The Rust project is moving toward formal rules on LLM use in contributions after months of internal debate over maintainer burden, code quality, and contributor experience.