0

How can I get the playwright browser objects executable_path and version in pytest where I only have a Page object?

I can get it from the garbage collector referrers list but it is ugly. (I need it for my test reports)

#!/usr/bin/env python3

""" browser version and executable path """
import gc, os, re
from playwright.sync_api import Page

class TestClass:

    def test00_pageversion(self, page: Page):
        """ browser version and executable path """
        b = gc.get_referrers(page)
        mybrowser = None
        for i in b:
            if re.search(r'BrowserType', str(i)):
                #log.info(f" found:{i}")
                mybrowser = str(i)
                break
        if mybrowser:
            browser_executable_path = re.search(r'executable_path=([^>]+)>', mybrowser).group(1)
            browser_version = re.search(r'version=([\d\.]+)>', mybrowser).group(1)
            browser_name = re.search(r'BrowserType name=([^\s]+)', mybrowser).group(1)
            print(f"name={browser_name}, version={browser_version} - executable_path={browser_executable_path}")
pytest -s --log-level=INFO .\tests\test_00_browser.py -k test00 --browser=firefox
:
name=firefox, version=134.0 - executable_path=C:\Users\mobj\AppData\Local\ms-playwright\firefox-1471\firefox\firefox.exe

pytest -s --log-level=INFO .\tests\test_00_browser.py -k test00 --browser-channel=chrome
:
name=chromium, version=134.0.6998.89 - executable_path=C:\Users\mobj\AppData\Local\ms-playwright\chromium-1155\chrome-win\chrome.exe

 

1 Answer 1

1

You can access the Browser object from the page's context:

from playwright.sync_api import Page

def test00_pageversion(page: Page) -> None:
    browser = page.context.browser
    version = browser.version
    name = browser.browser_type.name
    executable_path = browser.browser_type.executable_path
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.