| License | Version | ||
| Github Actions | Coverage | ||
| Supported versions | Wheel | ||
| Status | Downloads | ||
| All Contributors |
Python library for detecting and launching browsers
I recently wrote a snippet for detecting installed browsers in an OSX machine in mitmproxy/mitmproxy#5247 (comment) based on https://github.com/httptoolkit/browser-launcher and I thought this could be useful to other devs since I cannot find an equivalent library of httptoolkit/browser-launcher in Python and the known webbrowser standard library does not support arguments.
pip install pybrowsers- Detect browser on OSX
- Detect browser on Linux
- Detect browser on Windows
- Launch browser with arguments
- Launch and get browser by version with wildcard support
import browsersimport browsers print(list(browsers.browsers())) # [{'browser_type': 'chrome', 'path': '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', 'display_name': 'Google Chrome', 'version': '100.0.4896.127'}, {'browser_type': 'firefox', 'path': '/Applications/Firefox.app/Contents/MacOS/firefox', 'display_name': 'Firefox', 'version': '99.0.1'}, {'browser_type': 'safari', 'path': '/Applications/Safari.app/Contents/MacOS/Safari', 'display_name': 'Safari', 'version': '15.4'}, {'browser_type': 'opera', 'path': '/Applications/Opera.app/Contents/MacOS/Opera', 'display_name': 'Opera', 'version': '85.0.4341.60'}, {'browser_type': 'msedge', 'path': '/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge', 'display_name': 'Microsoft Edge', 'version': '100.1185.22042050'}]import browsers print(browsers.get("chrome")) # {'browser_type': 'chrome', 'path': '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', 'display_name': 'Google Chrome', 'version': '100.0.4896.127'}import browsers browsers.launch("chrome")import browsers browsers.launch("chrome", url="https://github.com/roniemartinez/browsers")import browsers browsers.launch("chrome", args=["--incognito"])The get() and launch() functions support specifying version in case multiple versions are installed. Wildcard pattern is also supported.
import browsers print(browsers.get("chrome", version="100.0.4896.127")) # complete version # {'browser_type': 'chrome', 'path': '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', 'display_name': 'Google Chrome', 'version': '100.0.4896.127'} print(browsers.get("chrome", version="100.*")) # wildcard # {'browser_type': 'chrome', 'path': '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', 'display_name': 'Google Chrome', 'version': '100.0.4896.127'} browsers.launch("chrome", version="100.0.4896.127") # complete version browsers.launch("chrome", version="100.*") # wildcard- httptoolkit/browser-launcher
- Desktop Entry Specification
- Github: webbrowser.open incomplete on Windows
- StackOverflow: Finding the version of an application from Python?
Thanks goes to these wonderful people (emoji key):
Ronie Martinez π» π€ π π§ | Sergey Pirogov π | vanderboon π» | Stanislav Pankevich π | Amir Rossert π» | Deep-Tech Showcase and Eaglepoint Funding π | dmnmsc π |
Oleksii Gubanov π |
This project follows the all-contributors specification. Contributions of any kind welcome!