
Security News
Risky Biz Podcast: Making Reachability Analysis Work in Real-World Codebases
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
The easiest end-to-end test automation using Puppeteer
npm install pupest
# OR
yarn add pupest
# OR
pnpm add pupest
# OR
bun add pupest
Pupest CLI automatically detects all files *.pupest.js
// login.pupest.js
import pupest from 'pupest';
pupest()
.go('https://github.com/login')
.type('user123', '#login_field')
.type('pass456', '#password')
.test('Login into GitHub')
Run for all *.pupest.js
files
pupest --visible --verbose
Run for custom glob
pupest **/auth --visible --verbose
type HandlerProps = {
browser: Browser;
page: Page;
scope: Frame;
}
Command | Params | Description |
---|---|---|
click | selector: string | Clicks the element matching the selector. |
clickIfExists | selector: string | Clicks the element matching the selector only if exists on DOM. |
command | callback: (pupest: Pupest, ...args: any[]) => Pupest | Executes custom command created previously. |
contains | text: string , selector?: string | Checks if the element matching the selector contains the specified text. |
file | selector: string , ...paths: string[] | Attaches one or more files to the element matching the selector. |
find | selector: string | Returns the first element matching the selector. |
frame | selector?: string | Switches to the frame matching the selector (or to the main frame if no selector is provided). |
go | url: string | Navigates to the specified URL. |
ifElse | condition(HandlerProps) , then(HandlerProps) , else(HandlerProps) | Executes callback "then" or "else" based on boolean returned from "condition". |
keep | Keeps the browser open, having to be closed manually. | |
press | key: KeyInput | Presses the specified key. |
puppeteer | handler(HandlerProps) | Executes a custom handler function that receives an object with instances of the browser, page, and current frame. |
screenshot | path?: string | Captures a screenshot of the current page and saves it to the specified path (or in the test file directory). |
scroll | selector: string | Scrolls the page until the element matching the selector is visible. |
select | selector: string , ...values: string[] | Selects the specified options on the element matching the selector. |
type | text: string | Types the specified text. |
wait | milliseconds: number | Waits for the specified number of milliseconds before continuing. |
waitAnimationEnd | selector: string | Waits for the animation or transition of the given selector to finish. |
waitResponseURL | url: string | Waits for a response from a specified URL before proceeding. * may be used at the beginning and end of the URL |
bail
CLI: --bail
or -b
If set to true
, stops the test run on the first failure.
changed
CLI: --changed
Runs tests only on the files that have been changed. It is useful for quickly testing changes without having to run the entire test suite.
height
CLI: --height
or -h
The height of the browser window in pixels. Defaults to 1080
.
keep
CLI: --keep
or -k
If set to true
, keeps the browser open, having to be closed manually
speed
CLI: --speed
or -s
The speed at which the tests are run. Can be set to 'slow'
, 'medium'
, or 'fast'
. Defaults to 'fast'
.
timeout
CLI: --timoeut
or -t
The amount of time in milliseconds to wait for a test to complete before timing out. Defaults to 15000
.
userAgent
CLI: --userAgent
or -u
The user agent string to use when making requests. Defaults to a random user agent.
verbose
CLI: --verbose
If set to true
, logs more information about the test run.
visible
CLI: --visible
or -v
If set to true
, runs the tests in a visible browser window.
width
CLI: --width
or -w
The width of the browser window in pixels. Defaults to 1920
.
FAQs
The easiest end-to-end test automation using Puppeteer
We found that pupest demonstrated a not healthy version release cadence and project activity because the last version was released 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.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.