ScreenshotNeo

BlogGuides

Selenium News and Updates: A Smattering of Selenium 88

A Smattering of Selenium #88 was a 2012 link roundup, not a Selenium version announcement. Here is what it covered and how to read it today.

By the ScreenshotNeo team4 October 20266 min read

A Smattering of Selenium #88 was a link roundup published by Adam Goucher on June 15, 2012. The “88” is the issue number, not a Selenium software version. Its introduction says “Five days and fifty links later…”; the accessible post body presents nine selected links across browser automation, Python, Ruby, APIs, and web development. Read the original roundup on the ScreenshotNeo blog.

What Selenium Smattering #88 covered

The roundup was a collection of pointers rather than a single release announcement or tutorial. Its nine visible entries covered:

  1. Jasmine Headless WebKit and a forthcoming discussion of headless browsers.
  2. Three ways to generate test data for Ruby automated tests.
  3. Waiting for Watir-WebDriver downloads and determining a filename.
  4. Python class definitions, with a link to Online Python Tutor.
  5. WatirSplash, presented as a framework from which to borrow ideas.
  6. Python deployment anti-patterns.
  7. A short piece titled “Don’t Build APIs…”.
  8. An ASP.NET MVC, Selenium, and IIS Express resource.
  9. A SeConf 2012 talk about waiting for Ajax-intensive pages.

Those are the roundup’s subjects and link labels. The links were not individually reassessed for this article, so their presence should not be taken as evidence that a tool is maintained or that the linked advice remains current.

Why issue number 88 is easy to misread

The title’s number identifies the roundup sequence. It does not mean Selenium 88 existed as a product release. The publication date and the range of unrelated subjects make the format clear: this was an editorial digest of resources, not a version announcement.

The phrase “Five days and fifty links later…” is the author’s framing. The accessible article body contains nine selected entries; it does not provide a current news count or a technical finding that can be generalized beyond those links.

How to understand the roundup in the context of Selenium today

Selenium is an umbrella project for tools and libraries that automate web browsers. WebDriver is its core interface for browser control, while Selenium Grid distributes test execution across machines and browser or operating-system environments. Those roles help explain why the 2012 roundup’s topics—from waiting on Ajax to browser automation—sit in a broader software-testing ecosystem.

Today’s Selenium 4 uses the W3C WebDriver standard by default and no longer supports the legacy protocol. That is later migration context; it should not be projected backward onto a post from 2012. The W3C page lists a WebDriver Recommendation dated June 5, 2018, as well as a Working Draft dated July 2, 2026. A draft and a Recommendation have different publication status.

The list is a snapshot of the concerns developers were sharing around browser tests and web development in 2012: test data, download handling, asynchronous pages, deployment, APIs, and language learning. It is useful as an archive of topics and a pointer list. For implementation decisions now, check current project documentation and the current status of any linked tool or technique.

Capture a page while investigating a browser issue

A screenshot can preserve what a page looked like when a test or investigation ran. With Selenium, a minimal Python example can open a URL, save a screenshot, and close the browser. Install Selenium and the browser you intend to automate, then run:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless")

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

For a repeatable setup, pin your Selenium dependency, use a browser and driver supported by your environment, and close the driver in a finally block so failures do not leave browser processes behind. A screenshot taken immediately after navigation may precede client-side rendering or lazy-loaded content; wait for a meaningful page condition before capturing.

Waiting for page content

Prefer waiting for the element that signals the page is ready over sleeping for an arbitrary number of seconds. For example:

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

options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
try:
    driver.get("https://example.com")
    WebDriverWait(driver, 15).until(
        EC.visibility_of_element_located((By.CSS_SELECTOR, "main"))
    )
    driver.save_screenshot("page.png")
finally:
    driver.quit()

Replace main with a selector that is meaningful for the target site. If the page updates asynchronously, the right readiness condition may be a result row, a changed status, or the disappearance of a loading indicator.

Common problems and fixes

Symptom Likely cause What to do
Browser or driver cannot start Browser installation, driver compatibility, or runtime setup is missing or inconsistent. Install a supported browser, check the Selenium upgrade guidance, and inspect the startup exception. Keep browser and driver versions compatible.
Screenshot is blank or incomplete Capture ran before the page rendered, content is lazy-loaded, or the page requires interaction. Wait for a page-specific condition, scroll if the target loads on scroll, and perform required interactions before capture.
Element wait times out The selector is wrong, the element never appears, or the page failed to reach the expected state. Check the selector and page outcome; distinguish a genuinely absent element from a slow page, and set a timeout appropriate to the workflow.
Tests pass locally but fail in CI Different browser versions, viewport, timing, fonts, or available resources. Make browser, viewport, and wait conditions explicit; capture diagnostic artifacts on failure and compare the CI environment.
Browser processes accumulate The driver is not quit after an assertion or navigation failure. Put cleanup in a finally block or the test framework’s teardown hook.

Performance, reliability, and cost considerations

Browser automation starts and controls a real browser, which gives it interaction capabilities but adds setup and runtime overhead compared with a direct screenshot request. Reuse a browser session when capturing multiple pages in one controlled test, but isolate sessions when cookies or page state could leak between cases. Use explicit waits to avoid both premature screenshots and unnecessary fixed delays.

For reliable visual records, keep the viewport and relevant browser settings stable, record the URL and test outcome alongside the image, and treat screenshots as diagnostic artifacts rather than proof that every interactive state was exercised. Selenium itself is an open-source browser automation project; execution costs depend on the machines, browsers, and any hosted infrastructure used to run it.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server for developers. One GET request returns a PNG, JPEG, WebP, or PDF. Cookie banners are accepted like a visitor would accept them, and more than 60 known consent platforms, newsletter popups, and chat widgets can be removed before capture; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers report the page verdict and billing status. Its MCP server gives Claude, Cursor, and other MCP clients the take_screenshot, get_page_info, and capture_pdf tools. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.

For the full parameter list and request options, see the ScreenshotNeo API documentation.

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

Create a free ScreenshotNeo account for 1,000 screenshots a month with no card.

FAQ

Was Selenium 88 released in 2012?

No. “88” is the issue number of Adam Goucher’s roundup, published June 15, 2012.

The accessible article body shows nine selected entries, even though the introduction refers to fifty links.

Does the roundup tell me how to use current Selenium?

It is an archival set of links, not current setup guidance. Use the current Selenium documentation for present-day APIs and migration details.

Is Selenium Grid the same thing as WebDriver?

No. WebDriver is the browser-control interface; Grid distributes execution across environments.