ScreenshotNeo

BlogEngineering

Selenium News and Updates: A Smattering of Selenium 98

A guide to Adam Goucher’s July 2012 Selenium roundup: its links, themes, and what to treat as historical context today.

By the ScreenshotNeo team4 October 20269 min read

Direct answer: “A Smattering of Selenium #98” is a historical link roundup published by Selenium project blogger Adam Goucher on July 2, 2012. It is not a Selenium release announcement. The links and short comments connect WebDriver migration and test synchronization with CI speed, browser and mobile compatibility, JavaScript libraries, BDD, Unicode, responsive design, and time-dependent test data. Read those topics as a snapshot of the Selenium community’s interests in 2012; the roundup does not establish current compatibility or validate the claims in every linked article.

1. What is “A Smattering of Selenium #98”?

Adam Goucher’s post is a curated set of links and brief editorial comments, published on the official Selenium project blog. Its opening, “Happy day off Canuckistan!”, is a Canadian holiday aside. The post moves across practical test automation concerns and related software topics rather than describing a single feature or release.

The distinction matters when using an old roundup as a reference: a link title records what was being discussed, while the roundup itself may not give enough detail to support the linked article’s technical claims. Some original linked pages were not retrievable in the research for this guide. Their titles are reported as they appear in Goucher’s post, not treated as independently verified results.

2. The themes in the roundup

Theme What Goucher’s roundup says How to read it now
RC-to-WebDriver migration It links “Selenium Rc to Webdriver Migration – Part2,” calling attention to its Internet Explorer section. It is a historical migration resource. Check current Selenium documentation and the actual browser and driver versions in your environment before applying old instructions.
Synchronization and SSL Goucher advises fixing a broken SSL certificate rather than working around it, and points readers toward proper synchronization when an element cannot be found. The SSL sentence is editorial advice, not a full debugging procedure. The roundup does not specify a synchronization strategy or provide a benchmark.
CI duration and scaling A linked Crashlytics headline says “Scaling Continuous Integration – Cutting Test Time by 77%.” Goucher also muses about dynamic test selection and parallelization as possible tooling directions. The 77% figure belongs to the linked headline as presented in the roundup. The original page was not retrievable for this research, so its method and result are unverified here.
Mobile and browser support The post asks, “Does WebDriver support Jelly Bean yet?” The question shows what readers were asking in 2012; it is not evidence of support then or compatibility now.
JavaScript and BDD It links a discussion of jQuery Core 1.9 and beyond, and a Cucumber presentation titled “Myth #2 of Cucumber: It’s about Talking not Testing.” Goucher speculates that WebDriver should be immune to jQuery changes, while qualifying that view. Treat the compatibility comment as a qualified 2012 opinion, not a guarantee for every application or test setup.
Other engineering topics Additional links concern Unicode encoding, cloud-powered CI/CD architectures, responsive images, and Delorean, a Ruby library for changing perceived time in scripts. The Delorean repository now labels the project discontinued and no longer maintained. Its historical mention is not a recommendation to adopt it for new work.

3. Practical lessons for reading this archive

Separate advice from evidence

The post’s concise advice about SSL and synchronization is useful as a pointer to common test failure categories. It does not contain enough detail to diagnose a particular test. A missing element can involve timing, a changed selector, a frame or window context, or a page that never reached the expected state. Diagnose the failure in the present application and consult documentation for the versions actually in use.

Do not promote a headline into a benchmark

The 77% reduction appears in the title of a Crashlytics article linked by Goucher. Since the linked page could not be checked in this research, do not cite it as an independently reproduced result or assume that a similar improvement applies to another suite. Dynamic selection and parallel execution are topics the roundup mentions, not measured recommendations.

Keep historical compatibility questions historical

Questions about Jelly Bean, Internet Explorer, and jQuery 1.9 belong to their original software context. Before following an archived instruction, identify the Selenium binding, browser, driver, operating system, and application versions the instruction assumed. Then verify the behavior against current primary documentation and a minimal reproduction.

Recognize the breadth of test infrastructure

The roundup links test automation to encoding, deployment architecture, responsive design, and control over time in tests. That breadth is a useful historical signal: browser tests depend on more than selectors and clicks. Environment configuration, asynchronous behavior, data, and deployment can all affect test outcomes. The post itself does not provide implementation recipes for those areas.

4. Capture a page with a browser you control

If your goal is to inspect what a browser-rendered page looks like, a small Selenium script can navigate to a page and save a screenshot. This example uses Python and Selenium 4 with a locally available Chrome installation and compatible driver setup. Install Selenium with python -m pip install selenium, save the script as capture.py, then run python capture.py.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless=new")
options.add_argument("--window-size=1440,1000")

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://example.com")
    driver.save_screenshot("page.png")
finally:
    driver.quit()

This is a viewport screenshot, not a full-page capture. The browser and driver must be installed and compatible; in CI, also make sure the process has the libraries and permissions required by headless Chrome. For a page that renders asynchronously, wait for a meaningful condition before saving instead of relying on an arbitrary sleep:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# After driver.get(url):
WebDriverWait(driver, 15).until(
    EC.visibility_of_element_located((By.CSS_SELECTOR, "main"))
)
driver.save_screenshot("page.png")

Replace main with a selector that represents the content you need. A visible element can still appear before all images or application data finish loading, so choose a readiness condition that matches the page and capture purpose.

5. Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. Its one-call endpoint returns a PNG, JPEG, WebP, or PDF. For example, this cURL request saves a WebP screenshot of a page; create an API key and see the API documentation for request options.

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

Python equivalent:

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://example.com"},
    timeout=90,
)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)

Node.js equivalent:

const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://example.com'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', Buffer.from(await res.arrayBuffer())));
  • Cookie banners, newsletter popups, and chat widgets from supported platforms are removed before capture; each cleanup step can be turned off.
  • Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed; response headers report the page verdict and billing status.
  • An MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents and MCP clients.
  • The free plan includes 1,000 screenshots a month with no card. Paid plans start at $5 for 3,000 screenshots.

Create a free ScreenshotNeo account and start with 1,000 screenshots a month, no card required.

6. Troubleshooting the Selenium capture example

Symptom Likely cause What to do
Chrome or driver startup fails Chrome is missing, the driver cannot be found, versions do not work together, or the CI environment lacks required system libraries. Install Chrome and Selenium dependencies in the execution environment, check the driver setup, and read the full startup exception. Reproduce locally with the same browser version.
Screenshot is blank or incomplete The page has not rendered its content when the screenshot is taken, navigation failed, or the viewport does not expose the expected content. Check the current URL and page state, wait for a page-specific element, and save a screenshot or page source during diagnosis.
Element wait times out The selector is wrong, the element is in another frame, it is hidden, or the page did not reach the expected state. Inspect the live DOM, verify frame and window context, and wait for the condition the test actually requires. Do not mask a broken page with longer sleeps alone.
Certificate warning interrupts navigation The target has a certificate problem or the test environment has an incomplete trust configuration. Fix the certificate or trust chain. Goucher’s roundup explicitly cautions against working around a busted certificate.
Works locally but fails in CI Browser version, fonts, screen size, network access, permissions, or timing differ between environments. Record the browser and driver versions, use a consistent viewport, retain failure artifacts, and wait on observable page conditions.
Request to ScreenshotNeo returns an error The API key, URL, network request, or request parameters may be invalid. Check the key and encoded URL, inspect the HTTP status and response headers, and consult the API docs. Use the verdict and billing headers to distinguish a page outcome from an API request problem.

7. Performance, reliability, and cost considerations

For Selenium, browser startup and page rendering are part of the work. Reusing a browser session for a suite can avoid repeated startup costs, but isolate test state so cookies, tabs, and prior navigation do not make later captures misleading. In CI, parallel browser sessions can increase throughput while also increasing CPU and memory demand; the roundup’s mention of parallelization is historical context, not a sizing benchmark.

Reliability improves when a capture waits for a condition tied to the page’s actual content, preserves browser and driver details, and records diagnostic artifacts on failure. A fixed delay is easy to add but can be too short on a slow run and wasteful on a fast one.

ScreenshotNeo pricing is $0 for 1,000 shots per month, then Starter $5 for 3,000, Growth $15 for 15,000, Pro $39 for 60,000, Scale $99 for 250,000, and Business $249 for 1,000,000. Yearly billing gives two months free, and every feature is on every plan. Its billing rule excludes bot checks, blank pages, timeouts, failed loads, and cache hits; check each response’s X-Page-Verdict and X-Billed headers when reconciling usage. Use caching with a chosen TTL when repeated captures can share a result, or async jobs and signed webhooks for work that should not hold a request open. See the documentation for supported capture options and API behavior.

8. Frequently asked questions

Was Selenium 98 a Selenium version?

No. “A Smattering of Selenium #98” is the number of the blog roundup, not a release number.

Is the post a current Selenium compatibility guide?

No. Its Jelly Bean and Internet Explorer references are historical. Verify compatibility against current Selenium and browser documentation.

Can I use the 77% CI figure to estimate my own test savings?

No. It is a number in the linked Crashlytics headline. The original page and its method could not be checked for this guide.

Does the roundup recommend Delorean for new Ruby tests?

No. It links the library as one topic in the roundup, and its repository now marks it discontinued and unmaintained.

Can ScreenshotNeo produce more than viewport screenshots?

Yes. Available options include full-page capture, CSS-selector element capture, PDF output, device presets and custom viewports, custom CSS and JavaScript, and wait conditions. The API also supports controls such as headers, cookies, user agent, caching, and asynchronous jobs; see the docs for parameters.

Sources and scope

The primary source for the roundup’s date, author, links, and comments is Adam Goucher’s official Selenium project blog post. The Delorean status is based on the linked project repository, which labels the library discontinued. The underlying migration, CI, and Cucumber pages were not retrievable in this research pass, so claims in their titles are attributed to the roundup rather than presented as verified findings.