{"library":"selenium-stealth","title":"Selenium Stealth","description":"Selenium Stealth is a Python library designed to make Selenium WebDriver more stealthy, aiming to bypass anti-bot detection systems on websites. It achieves this by modifying various browser properties and behaviors that typically reveal automated browsing, such as the `navigator.webdriver` flag, user-agent, and WebGL fingerprints. The library currently supports Chrome/Chromium and is at version 1.0.6. While still functional for many use cases, its last update on PyPI was in November 2020, and there is an actively maintained fork, `stealthenium`, for those seeking ongoing development.","language":"python","status":"maintenance","last_verified":"Mon May 18","install":{"commands":["pip install selenium-stealth"],"cli":null},"imports":["from selenium_stealth import stealth"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from selenium import webdriver\nfrom selenium.webdriver.chrome.service import Service\nfrom selenium.webdriver.chrome.options import Options\nfrom selenium_stealth import stealth\nimport time\n\n# Set up Chrome options\nchrome_options = Options()\nchrome_options.add_argument(\"start-maximized\")\nchrome_options.add_experimental_option(\"excludeSwitches\", [\"enable-automation\"])\nchrome_options.add_experimental_option('useAutomationExtension', False)\n\n# Configure ChromeDriver service (optional for Selenium 4.6+ if Chrome is in PATH)\n# If ChromeDriver is not in PATH, uncomment and set executable_path\n# service = Service(executable_path='/path/to/chromedriver')\n# driver = webdriver.Chrome(service=service, options=chrome_options)\n\n# For Selenium 4.6+ and Chrome in PATH, direct initialization is often sufficient\ndriver = webdriver.Chrome(options=chrome_options)\n\n# Apply stealth settings\nstealth(\n    driver,\n    languages=[\"en-US\", \"en\"],\n    vendor=\"Google Inc.\",\n    platform=\"Win32\",\n    webgl_vendor=\"Intel Inc.\",\n    renderer=\"Intel Iris OpenGL Engine\",\n    fix_hairline=True,\n)\n\nprint(\"Navigating to a test site...\")\ndriver.get(\"https://bot.sannysoft.com/\") # A common site to test bot detection\ntime.sleep(5) # Give some time for the page to load and scripts to run\nprint(f\"Page title: {driver.title}\")\n\n# Add your scraping logic here\n\ndriver.quit()\nprint(\"Browser closed.\")","lang":"python","description":"This quickstart initializes a Chrome WebDriver instance with common options to hide automation indicators, then applies the `selenium-stealth` modifications. It navigates to a known bot detection test site (`sannysoft.com`) to demonstrate its effect. Ensure you have `chromedriver` compatible with your Chrome browser version, either in your system PATH or specified via `Service(executable_path=...)`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"1.0.6","pypi_latest":"1.0.6","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.6,"avg_import_s":0.69,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"selenium-stealth","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.65,"mem_mb":11.1,"disk_size":"53.4M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"selenium-stealth","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.4,"import_time_s":0.48,"mem_mb":11.1,"disk_size":"54M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"selenium-stealth","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.93,"mem_mb":12.5,"disk_size":"58.9M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"selenium-stealth","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.6,"import_time_s":0.84,"mem_mb":12.5,"disk_size":"59M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"selenium-stealth","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.81,"mem_mb":12.2,"disk_size":"49.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"selenium-stealth","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.5,"import_time_s":0.87,"mem_mb":12.2,"disk_size":"50M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"selenium-stealth","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.75,"mem_mb":12.3,"disk_size":"49.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"selenium-stealth","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.5,"import_time_s":0.77,"mem_mb":12.3,"disk_size":"50M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"selenium-stealth","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.43,"mem_mb":13.5,"disk_size":"52.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"selenium-stealth","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4,"import_time_s":0.39,"mem_mb":13.5,"disk_size":"53M"}]}}