Skip to content

Commit eb9a977

Browse files
Add cross browser testing and data module
1 parent 064dc7e commit eb9a977

10 files changed

+53
-9
lines changed

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2023-2024 Tech With Alex / TechWithAlexDuta / Alexandru Duta
3+
Copyright (c) 2022-2024 Tech With Alex / TechWithAlexDuta / Alexandru Duta
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

config/__init__.py

Whitespace-only changes.

config/browser_type.py

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from enum import Enum
2+
3+
4+
class Browser(Enum):
5+
CHROME = "chrome"
6+
FIREFOX = "firefox"
7+
EDGE = "edge"

config/web_settings.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from config.browser_type import Browser
2+
3+
4+
BROWSER = Browser.CHROME
5+
BASE_URL = "https://www.selenium.dev/selenium/web/web-form.html"
6+
IMPLICIT_WAIT = 10

data/__init__.py

Whitespace-only changes.

data/text_data.py

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import uuid
2+
3+
4+
RECEIVED_EXPECTED_MESSAGE = "Received!"
5+
UUID = str(uuid.uuid4())

tests/conftest.py

+17-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,28 @@
33
import pytest
44
from selenium import webdriver
55

6+
from config.browser_type import Browser
7+
from config.web_settings import BASE_URL
8+
from config.web_settings import BROWSER
9+
from config.web_settings import IMPLICIT_WAIT
10+
611

712
@pytest.fixture
813
def browser():
914
# Setup: Create a browser instance
10-
driver = webdriver.Chrome()
11-
driver.get("https://www.selenium.dev/selenium/web/web-form.html")
15+
match BROWSER:
16+
case Browser.CHROME:
17+
driver = webdriver.Chrome()
18+
case Browser.FIREFOX:
19+
driver = webdriver.Firefox()
20+
case Browser.EDGE:
21+
driver = webdriver.Edge()
22+
case _:
23+
raise ValueError(f"Browser not supported {BROWSER}")
24+
25+
driver.get(BASE_URL)
1226
driver.maximize_window()
27+
driver.implicitly_wait = IMPLICIT_WAIT
1328

1429
# Provide the fixture value
1530
yield driver

tests/test_selenium_web_form.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""Basic sample test """
1+
"""Basic sample test"""
22

33
import uuid
44
import pytest
@@ -22,3 +22,7 @@ def test_write_to_text_area_and_submit():
2222
assert message == expected_message
2323

2424
driver.quit()
25+
26+
27+
if __name__ == "__main__":
28+
pytest.main()

tests/test_selenium_web_form_fixture.py

+4
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,7 @@ def test_write_to_text_area_and_submit_fixture(browser):
1515
message = browser.find_element(By.ID, "message").text
1616

1717
assert message == expected_message
18+
19+
20+
if __name__ == "__main__":
21+
pytest.main()

tests/test_selenium_web_form_pom.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
"""Sample test with Page Object Model pattern"""
22

3-
import uuid
43
import pytest
54

5+
from data.text_data import RECEIVED_EXPECTED_MESSAGE
6+
from data.text_data import UUID
67
from pom.web_form_page import WebFormPage
78

89
@pytest.mark.selenium_pom
910
def test_write_to_text_area_and_submit_fixture(browser):
10-
expected_message = "Received!"
11-
text = str(uuid.uuid4())
1211

1312
web_form = WebFormPage(browser)
1413
message = web_form\
15-
.set_textarea(text)\
14+
.set_textarea(UUID)\
1615
.submit_form()\
1716
.get_message()
1817

19-
assert message == expected_message
18+
assert message == RECEIVED_EXPECTED_MESSAGE
19+
20+
21+
if __name__ == "__main__":
22+
pytest.main()

0 commit comments

Comments
 (0)