From eb6fd8ac1d4f212c9545b3c9c3484d2f296bc8a6 Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Mon, 22 Jul 2024 09:20:50 +0200 Subject: [PATCH] Clean up open-coded driver startup --- bidi.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/bidi.py b/bidi.py index 7b77489..b0e994c 100755 --- a/bidi.py +++ b/bidi.py @@ -16,6 +16,12 @@ logger = logging.getLogger(__name__) # https://w3c.github.io/webdriver/#dfn-find-elements EL_ID = 'element-6066-11e4-a52e-4f735466cecf' +DRIVERS = { + "chromium": "chromedriver", + # TODO: not packaged, get from https://github.com/mozilla/geckodriver/releases + "firefox": "/tmp/geckodriver", +} + class WebdriverError(RuntimeError): pass @@ -58,14 +64,10 @@ class WebdriverBidi: } }} - if browser == 'chromium': - # add --verbose for debugging - self.driver = subprocess.Popen(["chromedriver", "--port=" + str(self.webdriver_port)]) - elif browser == 'firefox': - # TODO: not packaged, get from https://github.com/mozilla/geckodriver/releases - self.driver = subprocess.Popen(["/tmp/geckodriver", "--port", str(self.webdriver_port)]) - else: - raise ValueError(f"unknown browser {browser}") + try: + self.driver = subprocess.Popen([DRIVERS[browser], "--port=" + str(self.webdriver_port)]) + except KeyError as e: + raise ValueError(f"unknown browser {browser}") from e req = urllib.request.Request( f"{self.webdriver_url}/session",