Socket
Book a DemoInstallSign in
Socket

browser-versions

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

browser-versions

A comprehensive tool to detect web browser versions across different operating systems

1.0.0
pipPyPI
Maintainers
1

Browser Versions

PyPI version Python 3.6+ License: MIT Platform

A comprehensive Python package to programmatically detect web browser versions across different operating systems. This tool provides native OS detection without requiring Selenium or WebDrivers, making it perfect for automation scripts, system administration, and CI/CD pipelines.

Features

  • šŸ” Multi-Browser Support: Detect Chrome, Firefox, Edge, and Internet Explorer versions
  • šŸ–„ļø Cross-Platform: Works on Windows, macOS, and Linux
  • šŸ¢ Enterprise Ready: Enhanced support for Windows Server 2019/2022 and enterprise deployments
  • šŸ› ļø Multiple Detection Methods: Registry queries, executable commands, and folder-based detection
  • šŸ“ Robust Error Handling: Comprehensive fallback mechanisms and logging
  • šŸš€ Zero Dependencies: Uses only Python standard library
  • šŸ’» CLI Interface: Command-line tool for automation and scripting
  • šŸ“¦ Easy Integration: Simple API for use in Python applications

Supported Browsers

BrowserWindowsmacOSLinuxNotes
Google Chromeāœ…āœ…āœ…Includes Chromium
Mozilla Firefoxāœ…āœ…āœ…Includes Firefox ESR
Microsoft Edgeāœ…āœ…āœ…Includes Beta/Dev/Enterprise
Internet Explorerāœ…āŒāŒWindows only, deprecated

Supported Platforms

  • Windows: 7, 8, 10, 11, Server 2019/2022
  • macOS: 10.12 and later
  • Linux: Various distributions (Ubuntu, CentOS, RHEL, etc.)

Installation

pip install browser-versions

From Source

git clone https://github.com/pandiyarajk/browser-versions.git
cd browser-versions
pip install -e .

Quick Start

Command Line Usage

# Detect all browsers
browser-versions

# Detect specific browser
browser-versions --browser chrome

# Get version only (for scripting)
browser-versions --browser firefox --version-only

# Check script version
browser-versions --script-version

# Enable verbose logging
browser-versions --browser all --verbose

Python API Usage

from browser_versions import BrowserVersionDetector

# Create detector instance
detector = BrowserVersionDetector()

# Detect specific browser
chrome_version = detector.detect_chrome_version()
print(f"Chrome version: {chrome_version}")

# Detect all browsers
all_browsers = detector.detect_all_browsers()
for browser, info in all_browsers.items():
    if browser != 'platform':
        status = info['version'] if info['detected'] else 'Not found'
        print(f"{browser}: {status}")

Convenience Functions

from browser_versions import (
    get_chrome_version,
    get_firefox_version,
    get_edge_version,
    get_ie_version,
    get_all_browser_versions
)

# Quick version checks
chrome_ver = get_chrome_version()
firefox_ver = get_firefox_version()
edge_ver = get_edge_version()
ie_ver = get_ie_version()

# Get all versions at once
all_versions = get_all_browser_versions()

Output Examples

Standard Output

Browser Version Detection Results:
========================================
āœ“ Chrome: 120.0.6099.109
āœ“ Firefox: 120.0
āœ— Edge: Not found
āœ— Ie: Not found

Platform: win32

Version-Only Output (for scripting)

chrome: 120.0.6099.109
firefox: 120.0
edge: Not found
ie: Not found

API Reference

BrowserVersionDetector Class

The main class for browser version detection.

Methods

  • detect_chrome_version() → Optional[str]
  • detect_firefox_version() → Optional[str]
  • detect_edge_version() → Optional[str]
  • detect_ie_version() → Optional[str]
  • detect_all_browsers() → Dict[str, Any]

Example

detector = BrowserVersionDetector()

# Individual browser detection
chrome_ver = detector.detect_chrome_version()
if chrome_ver:
    print(f"Chrome {chrome_ver} detected")
else:
    print("Chrome not found")

# All browsers detection
results = detector.detect_all_browsers()
print(f"Platform: {results['platform']}")
for browser, info in results.items():
    if browser != 'platform':
        print(f"{browser}: {info['version'] if info['detected'] else 'Not found'}")

Convenience Functions

  • get_chrome_version() → Optional[str]
  • get_firefox_version() → Optional[str]
  • get_edge_version() → Optional[str]
  • get_ie_version() → Optional[str]
  • get_all_browser_versions() → Dict[str, Any]

Use Cases

System Administration

# Check browser versions across multiple systems
from browser_versions import get_all_browser_versions

def check_system_browsers():
    browsers = get_all_browser_versions()
    detected = [b for b, info in browsers.items() 
                if b != 'platform' and info['detected']]
    return detected

CI/CD Pipelines

# Check if required browser is available
if browser-versions --browser chrome --version-only | grep -q "Not found"; then
    echo "Chrome not found, installing..."
    # Install Chrome
fi

Automation Scripts

# Ensure compatible browser versions
from browser_versions import get_chrome_version

def check_chrome_compatibility():
    version = get_chrome_version()
    if not version:
        raise RuntimeError("Chrome not installed")
    
    major_version = int(version.split('.')[0])
    if major_version < 90:
        raise RuntimeError(f"Chrome version {version} is too old. Need 90+")
    
    return version

Development

Setup Development Environment

git clone https://github.com/pandiyarajk/browser-versions.git
cd browser-versions
pip install -e ".[dev]"

Running Tests

pytest

Code Formatting

black browser_versions.py
flake8 browser_versions.py
mypy browser_versions.py

Building Package

python -m build

Contributing

  • Fork the repository
  • Create a feature branch (git checkout -b feature/amazing-feature)
  • Commit your changes (git commit -m 'Add amazing feature')
  • Push to the branch (git push origin feature/amazing-feature)
  • Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Pandiyaraj Karuppasamy - pandiyarajk@live.com

Acknowledgments

  • Thanks to the Python community for excellent tooling
  • Inspired by the need for reliable browser version detection in automation workflows
  • Built with enterprise environments in mind

Changelog

See CHANGELOG.md for a detailed history of changes.

Support

Note: Internet Explorer has been deprecated by Microsoft and may not be available on newer Windows versions. This tool includes IE detection for legacy system support.

Keywords

browser

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with āš”ļø by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.