Free tools Windows power users keep installed
One-click scans. No signup required.
Puppeteer’s ClickOptions lets you adjust where and how a mouse click is sent: choose a point within an element, select a mouse button, repeat the click, set press duration, or show a temporary debug highlight. The options do not wait for a page to become ready. For navigation-triggering clicks, register waitForNavigation() before the click by starting both in Promise.all.
This guide follows the live Puppeteer API references: ClickOptions, MouseClickOptions and Page.click() show version 25.12.0; inherited MouseOptions shows 25.10.0; Offset shows 25.2.1; and LocatorClickOptions shows 25.9.0. Check the ClickOptions reference for the version you use.
What are Puppeteer ClickOptions?
ClickOptions is the options object passed to a Puppeteer click operation. It extends MouseClickOptions, which extends MouseOptions. Together, the interfaces control the click target point, mouse button, number of clicks, press duration and an optional visual debugging aid.
These are mouse-input settings. They do not add a wait for an element to appear, page scripts to finish, or navigation to complete. Handle readiness and navigation separately.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →#1 Best Overall
- Compact Mouse: With a comfortable and contoured shape, this Logitech ambidextrous wireless mouse feels great in either right or left hand and is far superior to a touchpad
- Durable and Reliable: This USB wireless mouse features a line-by-line scroll wheel, up to 1 year of battery life (2) thanks to a smart sleep mode function, and comes with the included AA battery
- Universal Compatibility: Your Logitech mouse works with your Windows PC, Mac, or laptop, so no matter what type of computer you own today or buy tomorrow your mouse will be compatible
- Plug and Play Simplicity: Just plug in the tiny nano USB receiver and start working in seconds with a strong, reliable connection to your wireless computer mouse up to 33 feet / 10 m (5)
- Better than touchpad: Get more done by adding M185 to your laptop; according to a recent study, laptop users who chose this mouse over a touchpad were 50% more productive (3) and worked 30% faster (4)
ClickOptions settings at a glance
| Setting | What it controls | Default or qualification |
|---|---|---|
offset |
The point to click, in pixels from the element border box’s top-left corner. | Optional; without it, Page.click() clicks the element center. |
button |
Which mouse button is pressed. | Optional; defaults to 'left'. |
count |
How many clicks to send. | Optional; defaults to 1. |
delay |
Time in milliseconds between mouse press and release. | Optional; this is press duration, not a wait before or after clicking. |
debugHighlight |
Shows a highlight at the click location for inspection. | Optional and experimental; the highlight lasts 10 seconds. |
How do I set the click offset in Puppeteer?
Set offset to an {x, y} point measured from the top-left of the target element’s border box. It is not an adjustment from the automatically chosen center. For example, {x: 12, y: 8} targets a point 12 pixels to the right and 8 pixels down from that top-left corner.
await page.click('button.submit', {
offset: { x: 12, y: 8 },
});
Choose coordinates based on the actual element geometry and the part of it that should receive the click. If you omit offset, Page.click() uses the center.
How do I double-click with Puppeteer?
Set count to a value greater than one to send repeated click input. For a double-click, use count: 2:
Rank #2
- The next-generation optical HERO sensor delivers incredible performance and up to 10x the power efficiency over previous generations, with 400 IPS precision and up to 12,000 DPI sensitivity
- Ultra-fast LIGHTSPEED wireless technology gives you a lag-free gaming experience, delivering incredible responsiveness and reliability with 1 ms report rate for competition-level performance
- G305 wireless mouse boasts an incredible 250 hours of continuous gameplay on just 1 AA battery; switch to Endurance mode via Logitech G HUB software and extend battery life up to 9 months
- Wireless does not have to mean heavy, G305 lightweight mouse provides high maneuverability coming in at only 3.4 oz thanks to efficient lightweight mechanical design and ultra-efficient battery usage
- The durable, compact design with built-in nano receiver storage makes G305 not just a great portable desktop mouse, but also a great laptop travel companion, use with a gaming laptop and play anywhere
await page.click('button.open', { count: 2 });
The option defines the number of clicks sent; whether an application interprets those clicks as a double-click action depends on the application.
How do I choose the mouse button or press duration?
Select a mouse button
Use button to choose which mouse button is pressed. It defaults to 'left'. These settings describe mouse input; they do not change page readiness or wait for the application to respond.
Set how long the button is held
delay is the time in milliseconds between the mouse press and release. It controls press duration, not a pause before the click and not a pause after it. Leave it out unless a longer press is needed for the interaction you are automating.
Rank #3
- Compact Mouse: With a comfortable and contoured shape, this Logitech ambidextrous wireless mouse feels great in either right or left hand and is far superior to a touchpad
- Durable and Reliable: This USB wireless mouse features a line-by-line scroll wheel, up to 1 year of battery life (2) thanks to a smart sleep mode function, and comes with the included AA battery
- Universal Compatibility: Your Logitech mouse works with your Windows PC, Mac, or laptop, so no matter what type of computer you own today or buy tomorrow your mouse will be compatible
- Plug and Play Simplicity: Just plug in the tiny nano USB receiver and start working in seconds with a strong, reliable connection to your wireless computer mouse up to 33 feet / 10 m (5)
- Better than touchpad: Get more done by adding M185 to your laptop; according to a recent study, laptop users who chose this mouse over a touchpad were 50% more productive (3) and worked 30% faster (4)
What does debugHighlight do?
debugHighlight: true inserts a visible highlight at the click location for 10 seconds, helping you inspect where the action is aimed. The setting is explicitly experimental: it may not work on every page and does not persist across navigation.
Use it to diagnose targeting, not to make a click more reliable or to wait for its result.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11How does Page.click(selector, options) behave?
Page.click() takes a selector, finds the matching element, scrolls it into view if needed, and clicks its center by default. When several elements match, it clicks the first. If no element matches, the returned Promise rejects. This selector workflow differs from calling ElementHandle.click() on an element handle you already have.
Rank #4
- Computer mouse for easily navigating a computer interface; click, scroll, and more
- USB-A wired connection; if existing device only supports USB-C, an additional adapter will be required
- High-definition (1000 dpi) optical tracking ensures responsive cursor control for precise tracking and easy text selection
- 3 buttons offer effortless fingertip control
- Plug-and-go ready for instant use
For example, a complete call with explicit illustrative values looks like this:
await page.click('button.submit', {
button: 'left',
count: 1,
delay: 0,
offset: { x: 12, y: 8 },
});
Those values are not universal best settings: adapt the selector and offset to the page and intended target point. For the method’s documented behavior, see Page.click().
How do I click a button and wait for navigation in Puppeteer?
Start the navigation wait and click together so the wait is registered before the click can trigger navigation:
Best Value
- 【Plug and Play for Home/Office/School】The wireless computer mouse features 2.4GHz connectivity, delivering a stable, interference-free connection up to 32ft. Designed for 𝐦𝐞𝐝𝐢𝐮𝐦 𝐭𝐨 𝐥𝐚𝐫𝐠𝐞 𝐬𝐢𝐳𝐞𝐝 𝐡𝐚𝐧𝐝𝐬, it ensures comfortable use all day. Simply plug in the USB-A receiver for instant pairing—no drivers needed. 📌📌 If the mouse isn’t suitable, place the USB receiver in the battery compartment and return both.
- 【3 Levels Adjustable DPI】This travel USB mouse offers 3 adjustable DPI settings (800, 1200, 1600), allowing you to customize sensitivity for precise design work. Effortlessly switch to match your task and elevate your productivity. 📌 Please remove the film at the bottom of the mouse before use.
- 【Effortless Browsing】Equipped with forward and backward buttons, this computer mice streamlines your workflow, making it easy to navigate through web pages and files with a simple click. 📌Side button does not work on Mac.
- 【Visible Indicator Light】 The pc mouse features a visual indicator for DPI levels and low battery alerts. The red light flashes once for 800 DPI, twice for 1200 DPI, and three times for 1600 DPI. When the battery level is below 10%, the light flashes red until the mouse is completely out of power.
- 【Click to Wake】With smart sleep mode, it saves power by standby after 10 inactive minutes, just 2-3 clicks to wake. This efficient design delivers 3x longer battery life than motion-wake mice. Engineered for durability, its buttons and scroll wheel are tested for 10 million clicks, ensuring long-term reliability and consistent performance.
const [response] = await Promise.all([
page.waitForNavigation(),
page.click('a.next'),
]);
A separately started wait after the click can miss a fast navigation. Select any navigation wait options to match the behavior of the application; no single lifecycle condition is right for every site. Puppeteer documents this coordination pattern in its Page.click() reference.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.How do locator click options differ?
LocatorClickOptions is ClickOptions & ActionOptions. It includes the click settings and an optional AbortSignal for aborting the locator action. That signal belongs to the locator action options; it is not a universal field on every ClickOptions call surface. See the LocatorClickOptions reference.
Troubleshooting click behavior
- The selector does not match:
Page.click()rejects when there is no matching element. Check the selector and ensure the element is present before calling it. - The wrong matching element is clicked:
Page.click()uses the first match. Make the selector more specific if multiple elements match. - The click lands in the wrong part of the target: remember that
offsetstarts at the border box’s top-left, not the center. Recalculate it for the element’s geometry or remove it to use the default center. - The script hangs or misses a navigation: register
waitForNavigation()alongside the click usingPromise.all, and use wait conditions appropriate to the application. - A longer delay did not make the page ready:
delayholds the mouse between press and release; use a separate readiness or navigation wait for page behavior. - The highlight is absent:
debugHighlightis experimental, may not work on every page and is removed by navigation.
Or skip the browser setup
If your goal is to capture a page rather than automate a Puppeteer interaction, ScreenshotNeo can return a screenshot with one GET request. Its API accepts cookie or consent banners like a visitor and removes 60+ known consent platforms, newsletter popups and chat widgets before capture; each step can be turned off. Bot checks, blank pages, timeouts, failed loads and cache hits cost nothing, and the response reports the page verdict and billing status. It also provides an MCP server for AI agents, with tools including take_screenshot, get_page_info and capture_pdf.
Example cURL request:
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 API documentation for request options. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Sign up for free and get 1,000 screenshots a month with no card.
Quick Recap
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.




