From 9305c559cd58bb2d466ea917e97c85425f965182 Mon Sep 17 00:00:00 2001 From: KenanZhu <3471685733@qq.com> Date: Sun, 22 Mar 2026 22:04:31 +0800 Subject: [PATCH] =?UTF-8?q?refactor(WebBrowserDetector):=20=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E6=B5=8F=E8=A7=88=E5=99=A8=E6=A3=80=E6=B5=8B=E5=BA=93?= =?UTF-8?q?=E4=B8=BA=20browsers=20=E5=B9=B6=E6=B7=BB=E5=8A=A0=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E7=BB=93=E6=9E=9C=E5=8E=BB=E9=87=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/managers/driver/WebBrowserDetector.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/managers/driver/WebBrowserDetector.py b/src/managers/driver/WebBrowserDetector.py index 1da85d8..4910f5f 100644 --- a/src/managers/driver/WebBrowserDetector.py +++ b/src/managers/driver/WebBrowserDetector.py @@ -1,5 +1,5 @@ import platform -import installed_browsers +import browsers from pathlib import Path from enum import Enum @@ -128,7 +128,7 @@ class WebBrowserDetector: self.browser_infos = [] try: - all_browsers = installed_browsers.browsers() + all_browsers = list(browsers.browsers()) except Exception as e: self.browser_infos = [] return self.browser_infos @@ -140,14 +140,14 @@ class WebBrowserDetector: 'msedge': WebBrowserType.EDGE, } for browser in all_browsers: - internal_name = browser.get('name', '').lower() + internal_name = browser.get("browser_type", "").lower() if internal_name not in type_map: continue # Not one of the browsers we care about - version = browser.get('version') + version = browser.get("version", "") if not version: # Skip browsers with no version info (unlikely, but defensive) continue - exe_path = browser.get('location') + exe_path = browser.get("path", "") if not exe_path: continue try: @@ -163,4 +163,13 @@ class WebBrowserDetector: browser_path=path, ) self.browser_infos.append(info) + # Deduplicate: keep only one entry per (type, version) + seen = set() + unique = [] + for info in self.browser_infos: + key = (info.browser_type, info.browser_version) + if key not in seen: + seen.add(key) + unique.append(info) + self.browser_infos = unique return self.browser_infos \ No newline at end of file