behave-framework/browserdriver/__init__.py
Greg Gauthier c33ed44780
Some checks failed
Execute / build (3.12) (push) Failing after 8s
Pylint / build (3.12) (push) Failing after 11s
attempted fix for msedge driver
2024-07-23 18:08:11 +01:00

60 lines
1.7 KiB
Python
Executable File

# pylint: disable=too-few-public-methods
import platform
from selenium import webdriver
from selenium.webdriver.chrome.options import Options as ChromeOptions
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.edge.options import Options as EdgeOptions
from selenium.webdriver.edge.service import Service as EdgeService
from conftest import CWD
import os
class BrowserDriver:
@staticmethod
def get(browser=None, headless=True):
valid_browsers = ['chrome', 'firefox', 'safari', 'edge']
if browser in valid_browsers:
browser_method = globals()[browser]
return browser_method(headless)
raise ValueError(f"'{browser}' is not a supported browser")
def chrome(headless=True):
options = ChromeOptions()
if headless:
options.add_argument("--headless")
options.add_argument('--ignore-certificate-errors')
return webdriver.Chrome(options=options)
def firefox(headless=True):
options = FirefoxOptions()
if headless:
options.add_argument("--headless")
options.accept_insecure_certs = True
return webdriver.Firefox(options=options)
def edge(headless=True):
options = EdgeOptions()
driver_name = "msedgedriver"
if platform.system() == 'Windows':
driver_name += ".exe"
edgedriver_loc = os.path.join(CWD, 'drivers', driver_name)
options.use_chromium = True
options.add_argument('disable-gpu')
if headless:
options.add_argument('headless')
edge_service = EdgeService(executable_path=edgedriver_loc)
edge_driver = webdriver.Edge(service=edge_service, options=options)
return edge_driver
def safari():
# Because safari driver is bundled with safari
return webdriver.Safari()