Skip to content

Commit a4d86e6

Browse files
Adding the click_helper util to BasePage POM and using it in pages/fit_test_kits_page
1 parent 3ffcc06 commit a4d86e6

File tree

2 files changed

+26
-14
lines changed

2 files changed

+26
-14
lines changed

pages/base_page.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,15 @@ def go_to_screening_practitioner_appointments_page(self)->None:
103103

104104
def go_to_screening_subject_search_page(self)->None:
105105
click(self.page, self.screening_subject_search_page)
106+
107+
def click(self, locator) -> None:
108+
try:
109+
self.page.wait_for_load_state('load')
110+
self.page.wait_for_load_state('domcontentloaded')
111+
locator.wait_for("attached")
112+
locator.wait_for("visible")
113+
locator.click()
114+
115+
except Exception as locatorClickError:
116+
print(f"Failed to click element with error: {locatorClickError}, trying again...")
117+
locator.click()

pages/fit_test_kits_page.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from playwright.sync_api import Page
2-
from utils.click_helper import click
2+
from pages.base_page import BasePage
33

4-
5-
class FITTestKits:
4+
class FITTestKits(BasePage):
65
def __init__(self, page: Page):
6+
super().__init__(page)
77
self.page = page
88
# Downloads Page
99
self.fit_rollout_summary_page = self.page.get_by_role("link", name="FIT Rollout Summary")
@@ -19,34 +19,34 @@ def __init__(self, page: Page):
1919
self.fit_device_id = self.page.get_by_role("textbox", name="FIT Device ID")
2020

2121
def go_to_fit_rollout_summary_page(self)->None:
22-
click(self.page, self.fit_rollout_summary_page)
22+
self.click(self.fit_rollout_summary_page)
2323

2424
def go_to_log_devices_page(self)->None:
25-
click(self.page, self.log_devices_page)
25+
self.click(self.log_devices_page)
2626

2727
def go_to_view_fit_kit_result(self)->None:
28-
click(self.page, self.view_fit_kit_result_page)
28+
self.click(self.view_fit_kit_result_page)
2929

3030
def go_to_kit_service_management(self)->None:
31-
click(self.page, self.kit_service_management_page)
31+
self.click(self.kit_service_management_page)
3232

3333
def go_to_kit_result_audit(self)->None:
34-
click(self.page, self.kit_result_audit_page)
34+
self.click(self.kit_result_audit_page)
3535

3636
def go_to_view_algorithm(self)->None:
37-
click(self.page, self.view_algorithm_page)
37+
self.click(self.view_algorithm_page)
3838

3939
def go_to_view_screening_centre_fit(self)->None:
40-
click(self.page, self.view_screening_centre_fit_page)
40+
self.click(self.view_screening_centre_fit_page)
4141

4242
def go_to_screening_incidents_list(self)->None:
43-
click(self.page, self.screening_incidents_list_page)
43+
self.click(self.screening_incidents_list_page)
4444

4545
def go_to_manage_qc_products(self)->None:
46-
click(self.page, self.manage_qc_products_page)
46+
self.click(self.manage_qc_products_page)
4747

4848
def go_to_maintain_analysers(self)->None:
49-
click(self.page, self.maintain_analysers_page)
49+
self.click(self.maintain_analysers_page)
5050

5151
def go_to_fit_device_id(self)->None:
52-
click(self.page, self.fit_device_id)
52+
self.click(self.fit_device_id)

0 commit comments

Comments
 (0)