behave-framework/browserdriver/__init__.py
Greg Gauthier bea18afa60
Some checks failed
Execute / build (3.12) (push) Failing after 8s
Pylint / build (3.12) (push) Failing after 11s
conditionals in runner scripts
2024-07-23 18:29:17 +01:00

64 lines
1.8 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)
print("***** DRIVER LOCATION *****")
print(edgedriver_loc)
print("***** DRIVER LOCATION *****")
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()