Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Puppeteer’s documented ActionOptions interface has one property: an optional signal of type AbortSignal, which can abort a locator action. For a time limit rather than cancellation, configure the locator separately with setTimeout().

What ActionOptions configures

The Puppeteer API reference for version 25.9.0 documents ActionOptions.signal as an optional AbortSignal for aborting a locator action. It does not document other properties on this interface in that reference. See the ActionOptions API reference.

Use an abort signal when you need a way to cancel an action. Do not treat it as a duration setting: Puppeteer documents locator timeouts separately, through Locator.setTimeout().

Use a locator for an action

Puppeteer recommends locators for interacting with page elements. A locator selects an element and automatically waits for it to be present and in a suitable state for the requested action. For example, the locator guide describes clicking as checking viewport presence, visibility, enabled state, and stable bounding-box geometry. Exact preconditions depend on the action; consult that action’s guidance rather than assuming every locator action runs identical checks.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A basic click can be written as:

await page.locator('button.submit').click();

To provide an abort signal, pass it in the action options for the locator action:

const controller = new AbortController();

await page.locator('button.submit').click({ signal: controller.signal });

Call controller.abort() when your application decides the action should be cancelled. The ActionOptions reference describes the signal’s purpose as aborting the locator action; it does not specify rollback behavior, precise cancellation timing, or whether page-side effects may already have occurred. Do not rely on cancellation to undo work that has reached the page.

Set a locator action timeout instead

Locator.setTimeout(timeout) sets the total timeout for that locator’s actions and returns a cloned locator. By default, the timeout comes from Page.getDefaultTimeout(); passing 0 disables the timeout. The Locator.setTimeout API reference documents these behaviors.

Rank #2
Sale
HTML and CSS: Design and Build Websites
  • HTML CSS Design and Build Web Sites
  • Comes with secure packaging
  • It can be a gift option

For example, the locator guide uses a 3,000-millisecond timeout:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
await page
  .locator('button.submit')
  .setTimeout(3000)
  .click();

That value is an example, not a general recommendation. Choose a duration appropriate to the page and operation. Use signal for cancellation and setTimeout() for a locator-specific elapsed-time limit; they solve different problems.

Understand locator readiness and alternatives

Locator readiness checks determine when Puppeteer proceeds with an action. For clicking, the guide describes checks including visibility, enabled state, viewport presence, and stable geometry, and shows ways to adjust some checks. These checks are distinct from how long the action is allowed to take.

The locator guide recommends locators for interaction. It also describes lower-level alternatives such as waitForSelector and ElementHandle. A manual selector wait does not automatically retry the action if that action fails, so it can require more explicit handling than a locator.

Choose the right control

Need Use What it controls
Cancel a locator action ActionOptions.signal An optional abort signal for the action.
Limit time spent on locator actions Locator.setTimeout(timeout) The locator’s total action timeout; defaults to the page default, while 0 disables the timeout.
Wait for a target before manual interaction waitForSelector or another lower-level API Explicit element waiting; it does not automatically retry a failed action.

Selector construction

Page.locator() accepts a selector or a function. Its documented selector forms include CSS and Puppeteer-specific syntax. Check the Page.locator API reference for supported forms in the Puppeteer version you use.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Version notes

The cited ActionOptions API reference identifies version 25.9.0. The locator guide and Page.locator() reference identify version 25.12.0. API documentation can change between releases, so verify the reference matching your installed Puppeteer version before relying on a specific option or example.

Rank #4
Sale
Web Design with HTML, CSS, JavaScript and jQuery Set
  • Brand: Wiley
  • Set of 2 Volumes
  • A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers

Troubleshooting

The action waits longer than expected

Check whether you are relying on the page’s default timeout. Set a locator-specific duration with setTimeout() if the action needs its own limit. Remember that 0 disables that timeout rather than making it immediate.

The signal does not behave like a timeout

An abort signal is a cancellation control, not the documented locator duration setting. Use setTimeout() to configure the total timeout for locator actions.

The element is found but the action does not proceed

Being present is not necessarily enough: locator actions may wait for action-specific readiness conditions. For a click, check the documented visibility, enabled-state, viewport, and geometry requirements. Adjust supported preconditions or investigate why the target does not meet them.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A manual selector wait is followed by a failed action

waitForSelector is lower-level and does not automatically retry the action. Prefer a locator for interaction, or add explicit handling around the lower-level action.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If your goal is to capture a webpage rather than automate an interaction, ScreenshotNeo provides a screenshot API and MCP server. Its one-call cURL example is:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo documentation for request options. ScreenshotNeo removes cookie banners, popups, and chat widgets before capture; bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card, and paid plans start at $5 for 3,000. Sign up for 1,000 free screenshots a month with no card.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.