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.

If protractor-html-screenshot-reporter creates neither an HTML report nor screenshots, do not assume one universal bug. The usual investigation is to verify module loading, confirm that the reporter is registered in the Protractor configuration actually being run, provide a valid writable baseDirectory, and check whether your test outcomes and capture options allow screenshots. The package is a legacy integration, so record your Protractor, Node.js, Jasmine, Selenium, and package versions before changing code.

Start with the smallest known-good configuration

Use the documented Jasmine integration in Protractor’s onPrepare hook. The constructor requires baseDirectory.

var HtmlReporter = require('protractor-html-screenshot-reporter');

exports.config = {
  framework: 'jasmine',
  specs: ['spec.js'],

  onPrepare: function () {
    jasmine.getEnv().addReporter(new HtmlReporter({
      baseDirectory: '/tmp/protractor-report'
    }));
  }
};

Run Protractor with the configuration file containing this code. While diagnosing, use an absolute path that the account running the test can write to. After a test run, inspect that exact directory and the console output. Add custom options only after this minimal setup produces artifacts.

1. Confirm the package is installed and resolvable

Install it in the test project’s directory

The documented development install command is:

npm install protractor-html-screenshot-reporter --save-dev

Run it from the directory containing the package.json used by your test command. A package shown in a different workspace, globally installed location, or editor project is not necessarily resolvable by the Node process running Protractor.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

Test the exact require

node -e "console.log(require.resolve('protractor-html-screenshot-reporter'))"

If this command fails, fix installation or module resolution before investigating output folders. Check the working directory, lockfile installation, and the Node executable used in CI versus locally. The documented import is:

var HtmlReporter = require('protractor-html-screenshot-reporter');

The registry search result identifies version 0.0.21 and describes it as having been published many years ago. Treat that as a legacy warning, not as proof of incompatibility with your particular versions.

2. Prove that Protractor reaches onPrepare

A frequent mistake is editing one configuration file while the command runs another. Temporarily add a visible message:

onPrepare: function () {
  console.log('reporter onPrepare reached');
  jasmine.getEnv().addReporter(new HtmlReporter({
    baseDirectory: '/tmp/protractor-report'
  }));
}

If the message never appears, check the file passed to the Protractor command, configuration exports, and any wrapper script that selects a different config. Also verify that Jasmine is the active framework. This reporter is documented as a Jasmine reporter; a different framework or runner requires a different integration.

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

Make sure the constructor line is executed exactly once. Duplicate registration can create confusing output, while registration outside the lifecycle hook may occur too early or not at all in a changed setup.

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

3. Validate baseDirectory and filesystem access

baseDirectory is mandatory. Use a simple absolute path during diagnosis:

baseDirectory: '/tmp/protractor-report'

The documentation says the missing base directory is created when a screenshot needs to be stored. Therefore, an absent directory alone does not prove that the constructor failed: no eligible screenshot may have been produced. Once a test has run, check:

  • Whether the path is the one you inspected, including case and spelling.
  • Whether the operating-system user running Protractor can create directories and files there.
  • Whether a container, CI worker, or cleanup step removes the directory after the test.
  • Whether a relative path was resolved from an unexpected working directory.

For a permission check, create a temporary file as the same user before running the suite. On Unix-like systems, touch /tmp/protractor-report-write-test is a quick check; remove it afterward. In CI, also preserve the directory as a build artifact so a post-job cleanup step cannot hide the result.

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.

4. Check whether the run should create screenshots

Do not diagnose a missing PNG until you know which specs ran and how they ended. The relevant options are:

Option Documented default Effect to verify
takeScreenShotsForSkippedSpecs false Skipped specs do not receive screenshots unless enabled.
takeScreenShotsOnlyForFailedSpecs false When enabled, passing tests still receive a report but no screenshot.

Confirm that your specs actually executed. A discovery pattern that matches no files, a suite filtered by a command-line option, an early startup failure, or a configuration error can leave the reporter with nothing to capture. Record the number of passed, failed, skipped, and executed specs.

Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Interpret output types correctly

The package documentation describes a summary HTML report and stack-trace information alongside JSON metadata. The underlying screenshot reporter stores PNG images with matching JSON metadata. A report may therefore exist without a PNG when failed-only mode is enabled and the test passed. Conversely, a PNG and JSON pair may be present in a generated path while the summary report is written under its configured report name.

5. Remove custom options while isolating the failure

After the minimal configuration works, restore settings one at a time. Documented optional extension points include:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • pathBuilder for choosing output paths.
  • metaDataBuilder for changing JSON metadata.
  • takeScreenShotsForSkippedSpecs and takeScreenShotsOnlyForFailedSpecs.
  • docTitle, docName, and cssOverrideFile.
  • preserveDirectory.

The documented defaults are report.html for the report filename, Generated test report for the document title, and false for preserveDirectory. A custom pathBuilder can redirect files somewhere you are not checking, and a custom metadata builder can introduce its own exception. Temporarily remove both to return to the default GUID-based path behavior, then compare your custom function with the README example.

Restore options in this order: report naming, directory preservation, metadata customization, path customization, and CSS. Run one deliberately failing spec after each change so there is an unambiguous screenshot expectation.

6. Use a controlled failing and passing test

A tiny suite helps distinguish capture conditions from write failures:

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
describe('reporter diagnostic', function () {
  it('passes', function () {
    expect(true).toBe(true);
  });

  it('fails', function () {
    expect(true).toBe(false);
  });
});

Run it with screenshot-only-for-failed-specs both disabled and enabled. With the option disabled, the reporter should have a reason to create artifacts for the tests it handles. With it enabled, expect a report for a passing test but no screenshot for that passing test. This is a diagnostic experiment, not a guarantee that every browser or Protractor version behaves identically.

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

7. Capture evidence before changing reporters

If tests run but artifacts are still absent, collect:

  • Protractor, Node.js, Jasmine, Selenium/WebDriver, and protractor-html-screenshot-reporter versions.
  • The complete Protractor command and the exact configuration file it loads.
  • Full console output, including filesystem, browser, and WebDriver errors.
  • The complete reporter configuration, including custom builders and path options.
  • Whether tests executed, and counts of passed, failed, and skipped specs.
  • The expected output path and the actual directories searched.
  • Operating system, container/CI details, and the user account running the process.

This information separates a module-loading error, a lifecycle problem, an ineligible test outcome, a path mistake, and a write failure. Without it, no single root cause can responsibly be assigned to every “no HTML or screenshots are saved” report.

8. Treat the historical Stack Overflow report as a symptom, not a fix

An older Stack Overflow question described version 0.0.21 installed in node_modules, registration in onPrepare, and no HTML or screenshots. The accepted answer mentioned Jasmine Allure but did not establish the cause or demonstrate that changing reporters fixed that setup. Use the report to recognize the symptom, not as package support documentation or a universal remedy.

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

9. Consider maintenance and compatibility

The named HTML package is built on protractor-screenshot-reporter. That upstream project describes itself as unmaintained, and its GitHub repository is marked archived on January 26, 2023. This is a maintenance warning for modern environments, not proof that your current failure has one specific cause. The available documentation does not provide a tested migration path or a current supported-version matrix.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

If you evaluate another approach, compare it against your actual Protractor, Jasmine, Node.js, and Selenium versions; whether screenshots are attached per failed spec or emitted as files; report formats and CI artifact handling; maintenance and release activity; configuration complexity; and compatibility with the runner you still use. Do not select a replacement solely because it appeared in an old forum answer.

Or skip the browser setup

If your real requirement is a reliable URL screenshot rather than a Jasmine reporter artifact, ScreenshotNeo provides a website screenshot API and MCP server. It accepts a URL in one request and returns PNG, JPEG, WebP, or PDF. Before capture it accepts cookie/consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be disabled.

Only clean shots are billed. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and the response identifies the result with X-Page-Verdict and X-Billed headers. AI clients such as Claude and Cursor can use its MCP tools: take_screenshot, get_page_info, and capture_pdf.

One-call cURL example

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 documentation for parameters and response handling. The service also supports full-page capture with lazy images loaded, CSS-selector element capture, dark mode, 12 device presets and custom viewports, retina scale, PDF paper and page controls, custom CSS and JavaScript, clicks, selector/delay/network-idle waits, request and resource blocking, headers, cookies, user agents, authorization, timezone, geolocation, transparent backgrounds, resizing, chosen cache TTLs, signed image links, asynchronous signed webhooks, bulk capture of up to 100 URLs per call, a usage API, and an OpenAPI specification. Common parameter names used by other screenshot APIs also work, easing migration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Plan Included screenshots Price
Free 1,000/month $0, no card
Starter 3,000 $5
Growth 15,000 $15
Pro 60,000 $39
Scale 250,000 $99
Business 1,000,000 $249

Every feature is available on every plan, and yearly billing gives two months free. Start with 1,000 free screenshots a month and no card.

Practical decision checklist

  • Keep the reporter if your legacy Protractor/Jasmine suite needs local PNG, JSON, and HTML artifacts and the minimal configuration works.
  • Plan a compatibility review if your versions are modern or the suite depends on an unmaintained upstream project.
  • Use an API when the requirement is repeatable URL capture, PDF generation, cleanup of consent UI, or automation by an AI agent rather than Jasmine lifecycle reporting.

Frequently Asked Questions

Does a missing output directory always mean the reporter failed to initialize?

No. The documented behavior creates the directory when a screenshot needs saving, so a run with no eligible screenshot can leave it absent. Check registration, test outcomes, and capture options first.

What information should I include when asking for help?

Provide Protractor, Node.js, Jasmine, Selenium, and reporter versions; the full command and config; complete output; executed and skipped test counts; the expected path; and the actual path searched.

Is the old package guaranteed to be incompatible with current Node.js?

No compatibility matrix in the available documentation proves that. Its age and archived upstream are reasons to verify versions carefully, not evidence of a universal incompatibility.

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

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.