Free tools Windows power users keep installed
One-click scans. No signup required.
Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
For new Selenium automation, use WebDriver BiDi to subscribe to browser network events. Register the listener before the action you want to inspect, then trigger that action and examine the event data. Use a request or response handler instead when a test must modify or block traffic; that is interception, not passive observation. BiDi setup and API details vary by language binding, Selenium version, and browser.
Choose observation or interception
“Capture network requests” can mean two different things. Decide which result you need before writing the test:
- Observe: receive events about requests and responses so you can log, inspect, or assert on traffic without deliberately changing it.
- Intercept: pause or handle traffic so the test can change request headers or body, block a request, or work with an incoming response. This changes the traffic path, so the test is no longer observing only what the page would ordinarily send and receive.
Selenium describes WebDriver BiDi as the bidirectional WebDriver protocol that lets the controlling program receive browser events. Its network features require BiDi to be enabled in the browser options before you use the network API. Register event handlers before triggering the page action: an event stream should not be treated as a store of events from before the subscription.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Use WebDriver BiDi for a new implementation
Selenium’s forward-looking route for network events is WebDriver BiDi. Selenium’s documentation describes it as “the W3C standard bidirectional protocol for browser automation, created by the Selenium project together with the browser vendors.” Actual network support still depends on the browser’s implementation and the particular Selenium language binding. The setup and callback shape are not interchangeable assumptions across Python, Java, JavaScript, and other bindings.
#1 Best Overall
- VERSATILE CABLE TESTING: Cable tester for data (RJ45) terminated cables and patch cords, ensuring comprehensive testing capabilities
- LARGE BACKLIT LCD: Backlit LCD display enables easy reading of pin-to-pin wiremap results, even in low-lit areas
- COMPREHENSIVE FAULT DETECTION: Test for Open, Short, Miswire, Split-Pair faults, Cross-over, and Shield, providing thorough fault detection
- INTUITIVE USER INTERFACE: User-friendly interface with three buttons and simple, easy-to-identify test responses, ensuring a smooth testing experience
- MULTIPLE TONE GENERATOR STYLES: Tone on a single wire, wire pair, or all 8 conductor wires using the multiple style tone generator (solid/warble); requires probe Cat. No. VDV500-123 (sold separately)
Python example: observe requests
The following is a Python-shaped example for the API documented by Selenium 4.43.0. It illustrates the event-handler approach; check the API reference for the installed Selenium release and browser before relying on exact event fields or callback details. The example enables BiDi, registers a before-request handler, then navigates so the navigation’s requests occur after registration.
from selenium import webdriver
options = webdriver.ChromeOptions()
options.enable_bidi = True
driver = webdriver.Chrome(options=options)
requests_seen = []
def on_request(event):
# Inspect the event structure for your Selenium binding/version.
requests_seen.append(event)
print(event)
try:
driver.network.add_request_handler(
"network.beforeRequestSent",
on_request,
)
driver.get("https://example.com")
print(f"Captured {len(requests_seen)} request event(s)")
finally:
driver.quit()
Install Selenium in the environment that runs the script and ensure the matching browser and driver are available to Selenium. This sample uses Chrome as the browser example; BiDi is the protocol direction, but the exact option, network object, event representation, and supported events depend on binding and browser. Treat the event as structured data, not as a guaranteed string format. Log only fields you need once you have confirmed their names for your installed version.
Which events answer which question?
The Selenium Python 4.43.0 API reference lists these network event names:
Rank #2
- VERSATILE CABLE TESTING: Cable tester tests voice (RJ11/12), data (RJ45), and video (coax F-connector) terminated cables, providing clear results for comprehensive testing on unenergized Ethernet cables (not designed to test PoE)
- EXTENDED CABLE LENGTH MEASUREMENT: Measure cable length up to 2000 feet (610 m), allowing for precise cable length determination
- COMPREHENSIVE FAULT DETECTION: Test for Open, Short, Miswire, or Split-Pair faults, ensuring thorough fault detection and identification
- BACKLIT LCD DISPLAY: Backlit LCD screen displays cable length, wiremap, cable ID, and test results, ensuring easy readability in various lighting conditions
- EFFICIENT CABLE TRACING: Trace cables, wire pairs, and individual conductor wires using the multiple style tone generator (requires analog probe Cat. No. VDV500-123, sold separately), simplifying cable tracing tasks
network.beforeRequestSent— inspect a request as it is about to be sent.network.responseStarted— observe the beginning of a response.network.responseCompleted— observe completion of a response.network.fetchError— observe a fetch failure event.
Choose the earliest event that contains the information your assertion needs. A before-request event is suited to checking what the browser is sending; response events are better suited to response lifecycle checks. Event payloads and field names are binding-specific, so inspect the API reference for the version you actually run rather than copying field access from a different language.
Filter events when possible
The Python 4.43.0 handler API accepts an event, callback, optional URL patterns, and optional browsing contexts. Filtering to the relevant URL patterns or context can make test logs easier to read and reduce irrelevant processing. Confirm the expected pattern and context syntax in the version-specific reference. If a test needs all traffic, omit those optional filters rather than using an overly broad or incorrect pattern.
Intercept traffic only when the test requires it
BiDi network handler APIs can also intercept outgoing requests and incoming responses. Depending on the handler, a test can alter request headers or body, block a request, or inspect and modify response data such as headers, status, or content. These are useful for controlled cases—for example, testing how a page behaves when a resource is blocked—but the modified transaction is not an unaltered record of normal browser traffic.
Rank #3
- Multifunctional NOYAFA NF-8508 Network Cable Tester: There are nine features to meet your needs. Continuity Testing, Cable Scan, Port Flash, Length Measurement, POE Power Supply Test, QC testing, Optical Power Meter, VFL and NVC function.It is perfectly suited for various engineering cabling projects, network troubleshooting, network equipment maintenance and testing scenarios. Its precise cable scanning and fault localization capabilities help you effortlessly pinpoint the root cause of issues.
- 7 WAVELENGTHS OPTICAL POWER METER: NF-8508 network cable tester can measure 7 standard wavelengths, 850/1300/1310/1490/1550/1625/1650, power detecting range(dBm): -70 ~ +10. Its power detection range spans from -70 dBm to +10 dBm, supporting FC/SC/ST connectors. It enables precise fiber optic power measurement, helping users efficiently assess fiber signal strength and ensure healthy fiber link operation. It effortlessly detects attenuation issues within fibers, thereby safeguarding fiber network stability.
- High Efficiency Visual Fault Locator: Easy identification of fiber breakpoints, poor connections, bending or cracking. Excellent for finding the right fiber to splice or quickly finding a break. Emmiting Energy: standard wavelenth: 650nm. Fast flashing, slow flashing, high precison.The built-in self-calibration ensures stable long-term performance, and Class IIIa laser (output<5mW) ensures safe daily operation.
- PORT FLASHING:The indicator light on the connection port in the NF-8508 device flashes to help accurately locate the cable. Displays port information, including operating speed, duplex mode, and negotiation settings. Port lights flash on the same screen to show the port's operating speed, making it easy to pinpoint lines and ports.
- PoE Testing and Cable Length Test: PoE testing can check cable mapping polarity and voltage of PoE network switches, withstand 60VDC. Automatically detects and switches between 10M/100M/1000M modes, Includes cable tracking, short circuit test, interruption of circuit test and etc The RJ45 cable tester can quickly measure the length of the cable with a range of 200m. Not only network cables, but also phone lines and BNC cables.
Keep observation and interception separate in test design. Use passive event subscriptions for assertions about ordinary page behavior. Use an intercepting handler when the test explicitly needs a changed request or response, and make the change obvious in the test name and setup so later maintainers do not mistake modified traffic for production behavior.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Use CDP for Chromium-specific existing tests
For Chrome- or Edge-oriented automation, Selenium also exposes Chrome DevTools Protocol functionality, including a documented NetworkInterceptor example. CDP is tied to Chromium DevTools support. Selenium cautions that CDP was not designed as a stable testing API, that functionality depends heavily on browser version, and that its CDP access is temporary while WebDriver BiDi is implemented.
That makes CDP a reasonable option for maintaining an existing Chromium-only suite or using a capability you already depend on, but a weaker default for a new cross-browser test. Align and pin the Selenium and browser versions in CI, and budget for migration work if the suite depends on CDP-specific behavior. Do not assume a CDP example will transfer unchanged to BiDi.
Rank #4
- Automatically runs all tests and checks for continuity, open, shorted and crossed wire pairs. Visible LED status display.
- Cable state testing (2-wire): Line DC detecting, anode and cathode determination,Ringing signal detecting open, short and cross circuit testing
- Cable Type: RJ11 Telephone cable and RJ45 LAN cable
- Connectors: Ethernet Cat 5, Ethernet Cat 5e, Ethernet Cat 6, Ethernet Cat 7, RJ11 6P and RJ45 8P
- Power Source: DC9V Battery Required (not included)
Pick the path that matches the test
| Need | Starting point | Important qualification |
|---|---|---|
| Stream browser network lifecycle events for a new test | WebDriver BiDi network events | Enable BiDi in options first; verify support for the browser, language binding, and Selenium version. |
| Change or block requests or responses deliberately | BiDi request or response handler | This changes the traffic being tested; use it for controlled interception scenarios. |
| Maintain Chromium-specific automation already using DevTools | Selenium CDP functionality, such as the documented NetworkInterceptor example | Version-sensitive, Chromium-oriented, and described by Selenium as temporary while BiDi is implemented. |
Make captured traffic useful in tests
Subscribe before the action
Start the driver, enable BiDi, and register the event callback before navigation or the click, form submission, or other action whose requests matter. Otherwise, the test may miss early events because it subscribed after they were emitted.
Scope the capture
Prefer URL patterns and browsing-context filters when they match the test’s purpose. If you collect every event, avoid dumping all payloads into routine CI logs: traffic can be noisy and may contain sensitive values such as tokens, cookies, or user data. Log only what an assertion needs, and redact secrets before storing artifacts.
Recommended Free Tools
Assert on stable properties
Test meaningful behavior—such as whether a required endpoint was contacted or whether a response lifecycle event occurred—rather than relying on incidental request ordering. Pages can issue unrelated analytics, image, font, or third-party requests, and timing can vary. Keep test assertions scoped to the endpoint and event relevant to the feature under test.
Best Value
- Multi-Function Network Cable Tester: Supports RJ45 (CAT5, CAT5e, CAT6, CAT6A, CAT7) and RJ11 telephone cables. Quickly detects continuity, short circuits, open wires, miswiring, and cable shielding status, ensuring your LAN or phone lines are correctly wired and ready to use.
- Fast/Slow Mode with LED Indicators: Switch between fast and slow scan speeds to identify wiring issues more precisely. LED lights on both master and remote units show wire order, making it easy to spot errors like open pairs or misaligned pins at a glance.
- Split-Type Design for Long-Distance Testing: Master and remote units can be detached and used separately, allowing you to test both ends of a long cable run, ideal for wall-mounted ports, long runs, or structured cabling. Perfect for home, office, or professional IT setups.
- Compact, Lightweight & Durable: Ergonomically designed with sturdy ABS housing, this pocket-sized tester is ideal for on-the-go network engineers, DIYers, and electricians. It’s your go-to toolkit for cable maintenance, upgrades, or new installations.
- Safe & Easy to Use: Simple one-button operation makes testing quick and hassle-free. LED indicators clearly show wiring status, while the G light instantly identifies shielded (FTP/STP) or unshielded (UTP) cables. Supports safe testing of telephone lines with typical voltages under 48-72V, ideal for both home and professional use.
Troubleshooting
- No events arrive: confirm BiDi was enabled in browser options before creating the session, that the browser supports the feature, and that the handler was registered before the navigation or action. Verify the event name and handler method against your binding’s installed-version documentation.
- The option or network API is missing: the code may target a different Selenium binding or release. Check the binding’s BiDi setup instructions and API reference; examples from another language or version may use different names or callback shapes.
- Some requests are absent: check whether your URL-pattern or browsing-context filters exclude them. Also verify that your subscription began before the triggering action; do not assume earlier events are buffered.
- Fields in the callback do not match the example: event payloads are version- and binding-specific. Inspect the actual event object and the API reference for your release instead of assuming another binding’s field layout.
- CDP behavior changes after an upgrade: Selenium documents CDP as version-sensitive. Align the Selenium and browser versions, and consider moving new functionality to BiDi where the browser and binding support it.
- A test sees different traffic after adding a handler: determine whether the handler is intercepting and modifying or blocking requests. Use an observation subscription when the test needs ordinary, unmodified traffic.
Performance, reliability, and maintenance
Capturing events adds work to the automation process: the browser emits event data and the test callback must process it. Keep callbacks short, filter where appropriate, and avoid retaining large response bodies unless the test needs them. This is a practical test-design precaution, not a Selenium performance benchmark; the cited Selenium material establishes no general throughput or overhead figure.
For reproducibility, record the Selenium binding and version, browser and version, and whether the test uses BiDi or CDP in the project’s dependency and CI configuration. Browser support and protocol compatibility can change, and language bindings do not necessarily expose the same surface at the same time. Recheck the binding API when upgrading rather than treating one code sample as universal.
Or skip the browser setup
If the goal is a page image rather than inspecting its network traffic, ScreenshotNeo offers a one-request screenshot API. It does not capture or expose network requests, so it is not a substitute for Selenium BiDi or CDP when network events are the requirement.
cURL:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
See the ScreenshotNeo API docs for request options. Cookie banners, newsletter popups, and chat widgets are removed before the shot; 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 required.
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.

