Capturing Browser Logs in Selenium Python

In modern web testing, verifying UI functionality alone is no longer sufficient. Often, client-side errors such as JavaScript exceptions, network failures, and warnings appear in the browser console — issues that traditional test assertions may miss. Fortunately, Selenium in Python allows testers to capture browser logs, making it easier to detect and debug front-end problems during test execution.

In this blog, you’ll learn how to capture and analyze browser logs in Selenium using Python, what kinds of log data you can access, and best practices for incorporating browser log checks into your test automation strategy.


Why Capture Browser Logs?

Browser logs offer insights that go beyond the rendered UI, such as:

JavaScript errors that break interactivity

Warnings for deprecated features

Failed network requests (e.g., API calls)

Console logs generated by developers

Security or CORS-related messages

These logs help testers identify hidden issues that might not directly fail a test but degrade user experience or cause future failures.


Prerequisites

Before you begin, ensure you have the following installed:

Python 3.x

selenium library (v4.x recommended)

Google Chrome and chromedriver

You can install Selenium using pip:


bash


pip install selenium


Step 1: Set Logging Preferences

Capturing logs is primarily supported by Chrome and requires enabling logging via ChromeOptions.


python


from selenium import webdriver

from selenium.webdriver.chrome.service import Service

from selenium.webdriver.chrome.options import Options

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities


# Enable browser logging

caps = DesiredCapabilities.CHROME

caps['goog:loggingPrefs'] = {'browser': 'ALL'}


options = Options()

options.add_argument("--headless")  # Optional: Run headlessly


driver = webdriver.Chrome(service=Service(), options=options, desired_capabilities=caps)

In this setup, we’ve configured Selenium to capture browser logs using the goog:loggingPrefs capability.


Step 2: Visit a Page and Collect Logs

Navigate to any URL and collect browser logs as follows:

python


driver.get("https://example.com")


# Perform actions (clicks, form submissions, etc.) if needed


logs = driver.get_log("browser")

for entry in logs:

    print(f"{entry['level']} - {entry['message']}")

Each entry is a dictionary with keys like level, message, and timestamp. This output includes console errors, warnings, and informational messages.


Sample Output

pgsql


SEVERE - https://example.com/script.js 10:15 Uncaught ReferenceError: myFunction is not defined

WARNING - Deprecation warning: 'escape' is deprecated

INFO - Console log message from user action


Step 3: Validate Logs in Tests

You can use assertions to fail tests if critical log entries are detected:


python


errors = [log for log in logs if log['level'] == 'SEVERE']

assert len(errors) == 0, f"Browser errors found: {errors}"

This helps catch silent JavaScript errors early, even if the UI looks fine.


Supported Log Types

You can also access other log types (depending on the browser):


python


print(driver.log_types)

# Output: ['browser', 'driver', 'client', 'server', 'performance']

For example, performance logs can help in analyzing network activity or page load metrics.


Best Practices

Always include log validation in CI pipelines to catch issues early.

Store browser logs in a file or test report for auditing and debugging.

Use headless mode for faster execution, but ensure logs are still captured.

Integrate with tools like Allure or custom dashboards to visualize logs.


Final Thoughts

Capturing browser logs with Selenium in Python enhances your test coverage by providing visibility into what’s happening under the hood. From JavaScript errors to deprecated warnings and failed API calls, browser logs are a goldmine for ensuring frontend quality. By incorporating log checks into your automation suite, you catch problems earlier and build more resilient web applications.


Learn Selenium with Pyhton Training Hyderabad

Read More:  How to Handle Broken Links in Selenium Python

Read More: Capturing Console Logs using Selenium Python

Read More: Debugging Selenium Python Scripts

Visit IHUB Talent Institute Hyderabad

Get Direction

Comments

Popular posts from this blog

How to Use Tosca's Test Configuration Parameters

Tosca Licensing: Types and Considerations

Using Hibernate ORM for Fullstack Java Data Management