diff --git a/.gitea/workflows/execute.yml b/.gitea/workflows/execute.yml index 82e71fd..c1da4a5 100644 --- a/.gitea/workflows/execute.yml +++ b/.gitea/workflows/execute.yml @@ -26,8 +26,10 @@ jobs: run: | wget https://msedgedriver.azureedge.net/${EDGEDRIVER_VERSION}/edgedriver_win64.zip unzip edgedriver_win64.zip + mv msedgedriver drivers - name: Run the pytests - run: pytest -c pytest.ini + run: pytest -c pytest.ini -m edge + - name: Run the behave tests - run: behave \ No newline at end of file + run: behave diff --git a/.gitignore b/.gitignore index 2c3d48e..5fa01db 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ .idea/ .vscode/ .venv/ +drivers/ \ No newline at end of file diff --git a/browserdriver/__init__.py b/browserdriver/__init__.py index 0635ca1..538e892 100755 --- a/browserdriver/__init__.py +++ b/browserdriver/__init__.py @@ -1,8 +1,13 @@ # 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: @@ -35,12 +40,17 @@ def firefox(headless=True): 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_driver = webdriver.Edge(options=options) - print(edge_driver.service.path) + edge_service = EdgeService(executable_path=edgedriver_loc) + edge_driver = webdriver.Edge(service=edge_service, options=options) return edge_driver diff --git a/edgedriver_win64.zip b/edgedriver_win64.zip new file mode 100644 index 0000000..feda467 Binary files /dev/null and b/edgedriver_win64.zip differ diff --git a/pytest.ini b/pytest.ini index 7cbc1fc..c42ae19 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,3 +1,7 @@ [pytest] +addopts = -s testpaths = pytests - +markers = + chrome: chrome tests only. + firefox: firefox tests only. + edge: msedge tests only. diff --git a/pytests/test_basic.py b/pytests/test_basic.py index 128acac..3e8c65b 100644 --- a/pytests/test_basic.py +++ b/pytests/test_basic.py @@ -1,8 +1,10 @@ import pytest from browserdriver import BrowserDriver +from conftest import CWD +@pytest.mark.firefox def test_firefox_browser(headless): bd = BrowserDriver().get("firefox", headless=headless) bd.get('https://test.io') @@ -10,6 +12,7 @@ def test_firefox_browser(headless): bd.quit() +@pytest.mark.chrome def test_chrome_browser(headless): bd = BrowserDriver().get("chrome", headless=headless) bd.get('https://test.io') @@ -25,8 +28,10 @@ def test_safari_browser(): bd.quit() +@pytest.mark.edge def test_edge_browser(headless): bd = BrowserDriver().get("edge", headless=headless) bd.get('https://test.io') assert bd.title == "Home | Test IO" bd.quit() +