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

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Most Codeception WebDriver failures on Windows 7 come from one of four causes: the driver executable is missing or off PATH, Selenium is not listening on the configured host and port, the browser and driver generations do not match, or the test acts before a dynamic element is ready. Check those in that order. Windows 7 also imposes a hard compatibility ceiling: Chrome 109 and Edge 109 were the final supported releases, while Mozilla directs Windows 7 users to Firefox 115 ESR. The steps below identify the transport, repair the driver and endpoint, stabilize waits, and show when moving the run to a supported operating system or remote grid is the safer fix.

Start by identifying the WebDriver transport

Open tests/acceptance.suite.yml (or the equivalent suite configuration) and read the WebDriver module. Your configuration determines which process must be running.

Transport Typical configuration Process to start Common endpoint
Selenium Server host: 127.0.0.1, port: 4444 Selenium Server (Java) http://127.0.0.1:4444 (and any configured path)
Direct ChromeDriver Chrome browser with a driver host and port chromedriver.exe Port 9515 is used in Codeception’s direct-driver example
Direct GeckoDriver Firefox browser with a driver host and port geckodriver.exe Use the port printed by GeckoDriver or set explicitly

A connection error cannot be fixed by changing a locator. First confirm that the process named by your configuration is running, that Windows Firewall or antivirus software is not blocking it, and that the host, port and path exactly match.

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

Install the Codeception module

From the project directory, install the maintained WebDriver module and regenerate actors if your project requires it:

#1 Best Overall
Dell OptiPlex 9020 Desktop Computer - Intel Core i5 (4th Gen) i5-4590 3.30 GHz - 8 GB DDR3 SDRAM - 500 GB HDD - Windows 7
  • Processor Model: i5-4590
  • Standard Memory: 8GB
  • Total Hard Drive Capacity: 500GB
  • Operating System: Windows 7
composer require --dev codeception/module-webdriver
vendor/bin/codecept build

Keep the module, Selenium version, browser and driver versions in one documented matrix. A package update can change which capabilities or endpoint paths are accepted.

Use a minimal Selenium configuration first

modules:
    enabled:
        - WebDriver:
            url: 'http://localhost/'
            host: 127.0.0.1
            port: 4444
            browser: chrome
            wait: 5
            connection_timeout: 30
            request_timeout: 30
            debug_log_entries: 10
            log_js_errors: true

The URL is the site under test, not the Selenium endpoint. If your Selenium server uses a non-default path, add that path exactly as required by the server and module version. The documented connection and request timeouts are 30 seconds by default; change them only after proving the endpoint is correct.

Fix a missing driver or PATH error

Errors such as “Unable to obtain driver,” “driver executable not found,” or “chromedriver is not recognized” mean the process that creates the session cannot locate the browser driver.

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

Verify what is installed

  1. Record the browser version from the browser’s About page. For Chrome or Edge, include the full major version (for example, 109); for Firefox, record the complete version and whether it is ESR.
  2. Open a new Command Prompt and run where chromedriver or where geckodriver. If a path is returned, run the executable directly: chromedriver.exe --version or geckodriver.exe --version.
  3. Compare the driver major version with the browser generation. Do not assume that the newest driver is correct for a Windows 7 browser.

Put the executable on PATH

Place the matching executable in a dedicated directory, add that directory to the system or user PATH, then open a new Command Prompt. The new shell matters because existing processes retain the old environment. Re-run the --version command before starting Codeception.

Set an explicit service path when PATH is unsuitable

If your Selenium or driver launcher supports a service executable path, configure the absolute path to chromedriver.exe or geckodriver.exe instead of relying on PATH. This is useful on build agents with restricted environments. Keep the path out of source control when machines differ; use an environment variable or CI secret and log the resolved filename.

Rank #2
Dell OptiPlex 990 DT/Core i7-2600 Quad @ 3.40 GHz/12GB DDR3/1TB HDD/DVD-RW/Windows 7 PRO 64 BIT
  • Microsoft Authorized Refurbisher
  • Windows 7 Professional 64bit
  • PACKAGE DOES NOT include monitor or keyboard/mouse

Consider Selenium Manager carefully

As of Selenium 4.6, Selenium Manager can download and select a driver automatically. That convenience depends on a Selenium version, network access and a browser stack that can still be installed on the machine. A Windows 7 project may be unable to upgrade all components together, so an explicit, known-good driver is often more predictable for a frozen legacy matrix.

Fix “session not created” and version mismatch errors

A message that the driver “only supports” another browser version is a compatibility failure, not a Codeception assertion failure. Capture both version outputs and install a compatible pair.

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.

Respect Windows 7’s browser ceiling

  • Google states that Chrome 109 is the last Chrome release supporting Windows 7.
  • Microsoft’s lifecycle documentation states that Edge version 109 is the last Edge release supporting Windows 7 and Windows 8.1, and that Windows 7 support has ended.
  • Mozilla directs Windows 7 users to Firefox 115 ESR. Confirm that the GeckoDriver release you choose supports that Firefox build.

Installing a current browser driver against Chrome 109 or Edge 109 usually produces the exact session-creation error you are seeing. Conversely, updating the browser beyond the final Windows 7 release is not a supported path.

Use a repeatable pairing procedure

  1. Write down browser, driver, Selenium Server and Codeception module versions.
  2. Choose the browser build that can actually run on Windows 7.
  3. Download the driver generation intended for that browser and architecture.
  4. Remove older copies from PATH so Selenium cannot select the wrong executable.
  5. Start the driver, then run one minimal Codeception test before restoring custom capabilities.

For Firefox, follow Mozilla’s ESR guidance rather than copying Chrome version rules. For a remote grid, let the provider’s documented browser and driver images supply the pair and set the requested browser and operating-system capabilities exactly.

Fix connection refused, timeout and wrong-endpoint errors

Start the matching process before Codeception

For a direct ChromeDriver run, start the executable in a separate console and use the same port configured in the suite:

chromedriver.exe --port=9515

For GeckoDriver, start the executable with the port your configuration specifies. For Selenium 4, start the Selenium Server JAR in standalone mode using the command supplied with that version, for example:

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.
java -jar selenium-server-<version>.jar standalone

Older Selenium distributions use different JAR names or startup syntax. The important check is that the process reports a listening address and that it remains running while vendor/bin/codecept run executes.

Match host, port and path exactly

  • Connection refused: nothing is listening at the configured address, the process exited, or a firewall blocked it.
  • 404 or unknown command: the endpoint path does not match the Selenium version or direct-driver endpoint.
  • Request timeout: the endpoint accepted the connection but did not complete startup; inspect the server console and browser launch errors before increasing the timeout.

Use 127.0.0.1 instead of a hostname while diagnosing local runs to remove name-resolution ambiguity. If Codeception runs in a VM, container or CI worker, “localhost” refers to that environment, not necessarily the machine where Selenium is running.

Change timeouts only for a known slow endpoint

connection_timeout governs establishing the connection and request_timeout governs WebDriver requests. Increasing either cannot repair a stopped process, an incorrect port or a browser that cannot start. After the endpoint is proven, raise the values for a remote grid or a slow Windows 7 host and record the reason in the suite configuration.

Fix ElementNotFound and flaky actions with synchronization

Selenium identifies poor synchronization as its most common error source. A page can be loaded enough to create a session while its target element is still being inserted, made visible or enabled.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
DELL OptiPlex 7010 MT Desktop PC, Intel Core i7-3770 3.4GHz, 8GB DDR3 RAM, 256GB SSD, Win-7 Pro x64 (Renewed)
  • This Certified Refurbished product is tested and certified to look and work like new. The refurbishing process includes functionality testing, basic cleaning, inspection, and repackaging. The product ships with all relevant accessories, a minimum 90-day warranty, and may arrive in a generic box. Only select sellers who maintain a high performance bar may offer Certified Refurbished products on Amazon.com
  • Intel Core i7-3770 3.40GHz Processor
  • 8GB DDR3 Memory
  • 256GB Solid State Drive
  • Windows 7 Professional x64

Wait for the state the test needs

Use a specific Codeception wait rather than adding a large global delay. For example:

$I->amOnPage('/login');
$I->waitForElementVisible(['id' => 'login'], 10);
$I->fillField(['id' => 'email'], '[email protected]');
$I->click(['css' => 'button[type="submit"]']);

Choose visibility when an element must be seen, clickability when an action requires an enabled control, and a stable attribute when JavaScript replaces the element. A fixed sleep can hide a race on one machine and still fail on another.

Use strict locators

Prefer ['id' => 'login'], a unique CSS selector, or a narrowly scoped XPath. Avoid text-only guesses when several matching nodes exist. If a component renders inside an iframe, shadow root or newly opened window, switch to that browsing context before locating the element.

Use the global wait deliberately

The WebDriver module’s wait value controls how long required elements are searched for. Increase it only when the application consistently needs more time; otherwise it can make genuine locator defects take much longer to surface. Keep explicit waits close to the step that depends on the dynamic state.

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

Turn on evidence before changing more settings

Set debug_log_entries above zero and enable JavaScript error logging when useful. On the first failure, save:

  • the complete Codeception and Selenium error text;
  • browser, driver, Selenium Server and Codeception module versions;
  • the configured host, port and path;
  • the driver startup console output;
  • the first failing test step and its locator.

This record separates a transport failure from browser startup failure and from a synchronization or locator failure. Do not change several variables at once; otherwise the next run cannot show which repair worked.

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

Choose local, direct-driver or remote execution

Option Version control Private-site access Maintenance and diagnostics Trade-offs
Local Selenium Server Full control of the legacy browser/driver pair Direct access to local and intranet sites You maintain Java, Selenium, drivers and logs Lowest network latency; Windows 7 compatibility ceiling remains
Direct ChromeDriver or GeckoDriver Control of one browser family Direct access Fewer moving parts, but you own process startup and versioning Useful for a small matrix; no cross-browser orchestration by itself
Hosted grid such as BrowserStack or LambdaTest Provider supplies browser images and remote sessions Use documented local-tunnel support for non-public sites Remote logs and, depending on service, video and artifacts Network latency and ongoing service cost; credentials and capabilities must be configured

If the required browser cannot run on Windows 7, or a compatible driver is unavailable for your PHP and Selenium combination, run Codeception on a supported Windows release or Linux. A hosted grid is also appropriate when you need current browsers without maintaining them locally. Codeception documents remote host credentials, browser and operating-system capabilities, and local tunnels for both BrowserStack and LambdaTest; verify current pricing and availability directly with the provider.

Or skip the browser setup

If your goal is a clean image or PDF rather than an interactive WebDriver test, ScreenshotNeo makes one GET request to capture a URL. It accepts consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups and chat widgets before capture; each cleanup step can be disabled. Only clean shots are billed: bot checks or CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed, and the response identifies the result with X-Page-Verdict and X-Billed headers.

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

The API supports PNG, JPEG, WebP and PDF output, full-page captures with lazy images loaded, CSS-selector element captures, dark mode, device presets, arbitrary viewports, retina scale, PDF paper and margin controls, custom CSS and JavaScript, pre-capture clicks, selector hiding, waits for selectors/delays/network idle, request and resource blocking, custom headers/cookies/user agents/Authorization, timezone and geolocation, transparent backgrounds, resizing, configurable-TTL caching, signed public image links, asynchronous jobs with signed webhooks, usage reporting and bulk capture of up to 100 URLs per call. An MCP server provides take_screenshot, get_page_info and capture_pdf tools for Claude, Cursor and other MCP clients. Parameter names used by other screenshot APIs are accepted to ease migration.

cURL

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 API documentation for output and option names. The same request can return a PNG, JPEG or PDF when the corresponding option is supplied.

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}`);

Every feature is included on every plan. The Free plan provides 1,000 shots per month without a card; paid plans start at $5 for 3,000 shots. Other monthly plans are Starter $5/3,000, Growth $15/15,000, Pro $39/60,000, Scale $99/250,000 and Business $249/1,000,000; yearly billing provides two months free.

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

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

Windows 7 maintenance and security reality

A locally repaired test can still be a frozen legacy environment, not a current or secure workstation. Microsoft lists Windows 7 support as ended, and the final Chrome and Edge releases for the operating system are old. Treat the machine as an isolated test worker, restrict network exposure, and plan migration to a supported OS or remote grid. Stabilizing Codeception today does not restore vendor security updates or make unsupported browser versions current.

Quick Recap

Bestseller No. 1
Dell OptiPlex 9020 Desktop Computer - Intel Core i5 (4th Gen) i5-4590 3.30 GHz - 8 GB DDR3 SDRAM - 500 GB HDD - Windows 7
Dell OptiPlex 9020 Desktop Computer - Intel Core i5 (4th Gen) i5-4590 3.30 GHz - 8 GB DDR3 SDRAM - 500 GB HDD - Windows 7
Processor Model: i5-4590; Standard Memory: 8GB; Total Hard Drive Capacity: 500GB; Operating System: Windows 7
$117.27
Bestseller No. 2
Dell OptiPlex 990 DT/Core i7-2600 Quad @ 3.40 GHz/12GB DDR3/1TB HDD/DVD-RW/Windows 7 PRO 64 BIT
Dell OptiPlex 990 DT/Core i7-2600 Quad @ 3.40 GHz/12GB DDR3/1TB HDD/DVD-RW/Windows 7 PRO 64 BIT
Microsoft Authorized Refurbisher; Windows 7 Professional 64bit; PACKAGE DOES NOT include monitor or keyboard/mouse
$570.65
Bestseller No. 4
DELL OptiPlex 7010 MT Desktop PC, Intel Core i7-3770 3.4GHz, 8GB DDR3 RAM, 256GB SSD, Win-7 Pro x64 (Renewed)
DELL OptiPlex 7010 MT Desktop PC, Intel Core i7-3770 3.4GHz, 8GB DDR3 RAM, 256GB SSD, Win-7 Pro x64 (Renewed)
Intel Core i7-3770 3.40GHz Processor; 8GB DDR3 Memory; 256GB Solid State Drive; Windows 7 Professional x64
$219.99

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.