最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

pytest get playwright executable_path and version - Stack Overflow

programmeradmin2浏览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

 

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

 
Share Improve this question asked Mar 17 at 9:52 MortenBMortenB 3,5693 gold badges44 silver badges50 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 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
发布评论

评论列表(0)

  1. 暂无评论