
Security News
Insecure Agents Podcast: Certified Patches, Supply Chain Security, and AI Agents
Socket CEO Feross Aboukhadijeh joins Insecure Agents to discuss CVE remediation and why supply chain attacks require a different security approach.
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 |
bailCLI: --bail or -b
If set to true, stops the test run on the first failure.
changedCLI: --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.
heightCLI: --height or -h
The height of the browser window in pixels. Defaults to 1080.
keepCLI: --keep or -k
If set to true, keeps the browser open, having to be closed manually
speedCLI: --speed or -s
The speed at which the tests are run. Can be set to 'slow', 'medium', or 'fast'. Defaults to 'fast'.
timeoutCLI: --timoeut or -t
The amount of time in milliseconds to wait for a test to complete before timing out. Defaults to 15000.
userAgentCLI: --userAgent or -u
The user agent string to use when making requests. Defaults to a random user agent.
verboseCLI: --verbose
If set to true, logs more information about the test run.
visibleCLI: --visible or -v
If set to true, runs the tests in a visible browser window.
widthCLI: --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
Socket CEO Feross Aboukhadijeh joins Insecure Agents to discuss CVE remediation and why supply chain attacks require a different security approach.

Security News
Tailwind Labs laid off 75% of its engineering team after revenue dropped 80%, as LLMs redirect traffic away from documentation where developers discover paid products.

Security News
The planned feature introduces a review step before releases go live, following the Shai-Hulud attacks and a rocky migration off classic tokens that disrupted maintainer workflows.