Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
Skip to content
World desk4 min

Emulate Bluetooth Devices with Puppeteer

A practical Puppeteer guide to emulating adapter state and simulated peripherals, handling chooser prompts, isolating tests, and troubleshooting version-sensitive behavior.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Puppeteer’s experimental page.bluetooth API lets you set an emulated adapter state and add a simulated preconnected peripheral for Web Bluetooth tests. For a page that opens a device chooser, register page.waitForDevicePrompt() before triggering the request, then select the simulated device. This controls browser-side simulation; it does not operate a physical Bluetooth radio or peripheral.

Set up a Puppeteer Bluetooth emulation test

The basic sequence is: emulate the adapter, describe the peripheral, exercise the page, and disable emulation. The API and its methods are marked experimental, so verify them against the Puppeteer version used by your project. See the BluetoothEmulation interface and PreconnectedPeripheral interface.

Runnable example

This CommonJS example assumes Puppeteer is installed and that http://localhost:3000 serves the application under test, with a button identified by #connect-bluetooth. Change the URL and selector to match your app.

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const context = await browser.createBrowserContext();
  const page = await context.newPage();

  try {
    await page.goto('http://localhost:3000', { waitUntil: 'domcontentloaded' });

    await page.bluetooth.emulateAdapter('powered-on');
    await page.bluetooth.simulatePreconnectedPeripheral({
      address: '09:09:09:09:09:09',
      name: 'SOME_NAME',
      manufacturerData: [{ key: 17, data: 'AP8BAX8=' }],
      knownServiceUuids: ['12345678-1234-5678-9abc-def123456789'],
    });

    const [devicePrompt] = await Promise.all([
      page.waitForDevicePrompt(),
      page.click('#connect-bluetooth'),
    ]);
    const device = await devicePrompt.waitForDevice(({ name }) =>
      name.includes('SOME_NAME')
    );
    await devicePrompt.select(device);

    // Add assertions for the expected post-connect UI or app behavior.
  } finally {
    await page.bluetooth.disableEmulation();
    await context.close();
    await browser.close();
  }
})();

The peripheral fields shown here follow Puppeteer’s documented example pattern: an address, name, manufacturer data, and known service UUIDs. Use values that match what your application expects. Manufacturer data is represented as a key and base64-encoded data string; service UUIDs identify services the simulated peripheral is known to expose.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Sale
TP-Link USB Bluetooth Adapter for PC - Bluetooth 5.4 USB Dongle Receiver
  • Bluetooth 5.4 + Broad Compatibility - Provides Bluetooth 5.4 plus EDR technology and is backward compatible with Bluetooth V5.3/5.0/4.2/4.0/3.0/2.1/2.0/1.1.
  • Faster Speed, Extended Range - Get up to 2x faster data transfer and 4x broader coverage compared to Bluetooth 4.0 — perfect for smooth audio streaming and stable connections.
  • EDR and BLE Technology - This Bluetooth dongle is quipped with enhanced data rate and Bluetooth low energy, UB500 has greatly improved data transfer speed and operates at the optimal rate of power consumption
  • Nano-Sized - A sleek, ultra-small design means you can insert the Nano Bluetooth receiver into any USB port and simply keep it there regardless of whether you are traveling or at home
  • Plug & Play with Free Driver Support - Plug and play for Windows 8.1/10/11 (internet required). Supports Win7 (driver required and can be downloaded from website for free). Download the latest driver from TP-Link website to utilize Bluetooth 5.4

Handle the device chooser in the right order

A call to requestDevice() can open a device request prompt. Start waiting for it before clicking the control or otherwise invoking the action that requests a device. Puppeteer documents that waitForDevicePrompt() does not return a prompt that is already active. The example uses Promise.all() so the wait is registered before the click is initiated.

Once the prompt is available, waitForDevice() can wait for the simulated device using a predicate, such as matching part of its name. Pass the resulting device to select(). These prompt methods are documented on DeviceRequestPrompt; the Page API documents waitForDevicePrompt().

Rank #2
COMSOON Bluetooth Receiver for Car, 3.5mm AUX Bluetooth Car Adapter
  • 【Enjoy Wireless Streaming Music】This car Bluetooth adapter can be connected to non-Bluetooth car audio systems, home stereos, speakers, wired headphones via the 3.5mm AUX adapter; And equipped with a Bluetooth 5.3 chip for stable connection / fast transmission / wide signal range. Just pair it with your phone and start listening to your favorite music!
  • 【Intelligent Noise Reduction Tech】Our Bluetooth audio receiver adopts the latest CVC8.0 Noise Cancellation and Digital Signal Processor (DSP) technologies, which can eliminate echo and block out intrusive background noise (such as wind, traffic, or crowds), providing you with crystal-clear calling sounds.
  • 【Up to 16 Hours of Battery Life】The working time of this aux Bluetooth adapter is up to 16 hours when making calls or playing music. And it takes only 2.5 hours to fully charge the device by using a Type-C fast charging cable (Included in the package). In addition, this Bluetooth music adapter can be used while charging, which is very convenient.
  • 【Hands-free Calling & Navigation】A built-in microphone and one “MFB” button to answer / redial / hang up / reject calls, help you make hands-free calls. And the Bluetooth audio adapter supports broadcasting voice notification from existed navigation App. You don’t have to look down the phone on the move. Make sure you drive safely!
  • 【Dual Connection】The portable Bluetooth stereo adapter can be paired with 2 devices at the same time. You can enjoy your music and never worry about missing any calls. Once paired, the car receiver will automatically reconnect to your last paired Bluetooth devices, as long as they are within the wireless range.

Choose the adapter state and peripheral data

emulateAdapter() sets the simulated adapter state. Puppeteer’s API takes the desired state and an optional low-energy support flag. The example uses powered-on; choose a state suited to the behavior under test and consult the API reference for the states and option supported by your installed release.

simulatePreconnectedPeripheral() supplies a simulated peripheral description. It is useful when testing chooser selection against a predictable device identity and service metadata. It does not mean a real device has connected, nor does it test radio behavior, pairing with physical hardware, or conditions in a real Bluetooth environment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Esinkin Bluetooth Audio Adapter for Music Streaming Sound System
  • Listen music wireless: Connect with computer speakers, home stereo systems or other speaker systems via the 3.5 mm or RCA cable, then pair with the Bluetooth audio devices such as smartphones or tablet for streaming music.
  • Easy setup and automatic reconnect: There is a big bluetooth symbol button in bluetooth receiver middle. Pair your bluetooth device to this adapter with a single button press. Click once means Bluetooth Connect/Disconnect. Hold the botton 3 second mean ON/OFF. It can reconnect automatically with the previously paired device.
  • Wireless range: Indoors(without obstacles) connect rang up 30-40 ft (10-12 m).
  • Works with most device: Bluetooth enabled device including smartphones, tablets, computers, laptops upon and any powered PC speakers, home stereo systems and A/V receivers.
  • NOTE: This adapter doesn't have built-in battery, power by AC to DC power adapter or USB cable. This product is a bluetooth receiver ONLY, not a bluetooth transmitter. Only to give Bluetooth capabilities to an existing stereo / powered speaker / PA. If you have any problems, please contact us at any time by Amazon Order, and we will speed up the process to resolve the issue.

Isolate tests that need independent Bluetooth state

Although the Web Bluetooth specification expects emulated adapters to be isolated per top-level navigable, Puppeteer’s documentation says Chromium’s implementation is tied to the browser context rather than an individual page. Consequently, pages in the same context can interfere with one another’s Bluetooth emulation. Create a separate browser context for tests that require independent state, as the example does, and avoid running conflicting Bluetooth scenarios on pages that share a context.

Keep Puppeteer and browser versions reproducible

Puppeteer controls Chrome or Firefox using DevTools Protocol or WebDriver BiDi. Its FAQ notes that Chrome automation uses CDP by default and Firefox uses WebDriver BiDi by default; Puppeteer releases are closely paired with browser releases for protocol compatibility. Record the Puppeteer version, browser build, and protocol path in test configuration or logs when a failure must be reproducible. Check the documentation for the version installed in your project: published API references may describe different release points. See What is Puppeteer? and the Puppeteer FAQ.

Rank #4
UGREEN USB Bluetooth 5.3 Adapter for PC Bluetooth Dongle Receiver
  • Upgraded Bluetooth 5.3 Adapter: This bluetooth adapter for pc uses the latest upgraded Bluetooth 5.3 BR+EDR technology, greatly improves the stability of the connection data transfer speed, reduces the possibility of signal interruption and power consumption.
  • Up to 5 Devices Sync Connected: UGREEN Bluetooth dongle for PC supports up to 5 different types of Bluetooth devices to be connected at the same time without interfering with each other, such as Bluetooth mouse/keyboard/mobile phone/headphones, etc. If Bluetooth audio devices of the same type (such as speakers/headphones) are connected, only one device can play music.
  • Plug and Play: The Bluetooth adapter is developed for Windows systems only and does not support other systems. No driver installation is required under Windows 11/10/8.1. NOTE: Win 7, Linux and MacOS System are NOT supported.
  • Mini Size: An extremely compact Bluetooth stick that you can leave on your laptop or PC without removing it.The compact size does not interfere with other USB ports. Convenient to carry, no space occupation.
  • What Can I do if the Bluetooth adapter can not work?: Ensure there are no other Bluetooth devices installed on the computer. If there are, disable all existing Bluetooth devices in "Device Manager", then insert the adapter and try again. (For detailed information please read the user manual)
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot common failures

  • No prompt is received: Start waitForDevicePrompt() before the page action that triggers the device request. It cannot recover an already-open prompt.
  • The simulated device is not selected: Confirm the simulated name and the predicate agree, and that the page actually opened a chooser. A predicate such as name.includes('SOME_NAME') must match the supplied peripheral name.
  • Tests affect one another: Put tests requiring independent Bluetooth state in separate browser contexts. Separate pages within one context may share the emulation state in Chromium.
  • An API call is missing or behaves differently: The Bluetooth API is experimental. Check the documentation for the Puppeteer release installed and keep its paired browser build and protocol path consistent.
  • The test passes in simulation but fails with hardware: Emulation validates browser-side flows against simulated state, not real radio, peripheral, or physical connection behavior. Test those conditions separately with the actual target environment.

Or skip the browser setup

ScreenshotNeo is a website screenshot API, not a Bluetooth emulator, so it cannot replace the Puppeteer workflow above. If you also need a screenshot of your app’s rendered page, a single GET request can capture it:

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. Cookie banners, newsletter popups, and chat widgets are removed before capture; bot checks, blank pages, failed loads, timeouts, and cache hits are not billed. ScreenshotNeo also provides an MCP server for AI agents, and its free plan includes 1,000 screenshots per month with no card required; paid plans start at $5 for 3,000 shots.

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

Sign up for ScreenshotNeo’s free plan to try it with no card.

Best Value
Amazon Basics Bluetooth 5.4 USB Adapter Dongle for PC, USB Receiver for Bluetooth Mouse, Keyboard, Laptop, Works with Windows 11/10/8.1
  • INSTANT BLUETOOTH ACCESS: Bluetooth dongle adapter receiver for PCs converts non-Bluetooth devices into Bluetooth-capable with simple USB connection
  • WIDE COMPATIBILITY: Supports Bluetooth 5.4 and is backwards compatible with Bluetooth 5.3/5.2/5.1/5.0/V4.2/4.0/3.0/2.1/2.0/1.1; ONLY works with Windows 8.1, 10, and 11
  • MULTI-DEVICE CONNECTION: Connect up to 6 devices simultaneously; Not compatible with all other operation systems e.g. Mac, Linux, Chrome, Unix, Playstation(PS), Windows 7 and below; Nano bluetooth receiver can be plugged in via any standard USB port
  • ENHANCED PERFORMANCE: EDR and BLE technology offers enhanced data rate/transfer speed and low energy consumption
  • SYSTEM REQUIREMENTS: Not compatible with all other operation systems e.g. Mac, Linux, Chrome, Unix, Playstation(PS), Windows 7 and below; Disable any built-in Bluetooth of the device before use this product, refer to the user manual for detail

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

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

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.