From 9cb7263047b46f73c3181777144d60afe538bdf1 Mon Sep 17 00:00:00 2001 From: Greg Gauthier Date: Sat, 10 Oct 2020 23:27:46 +0100 Subject: [PATCH] add edge(chromium) support --- Pipfile | 2 ++ browserdriver/__init__.py | 14 ++++++++++---- pytests/test_basic.py | 8 ++++++++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Pipfile b/Pipfile index 24d9c39..2367ac4 100644 --- a/Pipfile +++ b/Pipfile @@ -9,6 +9,7 @@ pytest = "*" behave = "*" selenium = "*" webdriver_manager = "*" +msedge-selenium-tools = "*" [packages] flask = "*" @@ -16,6 +17,7 @@ pytest = "*" behave = "*" selenium = "*" webdriver_manager = "*" +msedge-selenium-tools = "*" [requires] python_version = "3.8" \ No newline at end of file diff --git a/browserdriver/__init__.py b/browserdriver/__init__.py index c7cb560..7659f2f 100755 --- a/browserdriver/__init__.py +++ b/browserdriver/__init__.py @@ -1,8 +1,9 @@ from selenium import webdriver -from selenium.webdriver import DesiredCapabilities +from msedge.selenium_tools import Edge, EdgeOptions from webdriver_manager.firefox import GeckoDriverManager from webdriver_manager.chrome import ChromeDriverManager +from webdriver_manager.microsoft import EdgeChromiumDriverManager class BrowserDriver: @@ -13,7 +14,7 @@ class BrowserDriver: elif browser == "firefox": return firefox(headless) elif browser == "edge": - return edge() + return edge(headless) elif browser == "safari": return safari() else: @@ -39,8 +40,13 @@ def firefox(headless=True): options=options) -def edge(): - return webdriver.Edge(DesiredCapabilities.EDGE) +def edge(headless=True): + options = EdgeOptions() + options.use_chromium = True + options.headless = headless + edge_driver = EdgeChromiumDriverManager().install() + driver = Edge(edge_driver, options=options) + return driver def safari(): diff --git a/pytests/test_basic.py b/pytests/test_basic.py index 7b9d830..24b361b 100644 --- a/pytests/test_basic.py +++ b/pytests/test_basic.py @@ -15,3 +15,11 @@ def test_chrome_browser(headless): print(bd.current_url, bd.title) assert "QA Testing as a Service | test IO" == bd.title bd.quit() + + +def test_edge_browser(headless): + bd = BrowserDriver().get("edge", headless=headless) + bd.get('https://test.io') + print(bd.current_url, bd.title) + assert "QA Testing as a Service | test IO" == bd.title + bd.quit()