Skip to content

Commit 2085060

Browse files
Removing hardcoded locators from tests and creating new POMs
1 parent dee951e commit 2085060

17 files changed

+176
-51
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from playwright.sync_api import Page, expect
2+
from pages.base_page import BasePage
3+
4+
class AgeExtensionRolloutPlans(BasePage):
5+
def __init__(self, page: Page):
6+
super().__init__(page)
7+
self.page = page
8+
#Age Extension Rollout Plans - page locators
9+
self.age_extension_rollout_plans_title = self.page.locator("#page-title")
10+
11+
def verify_age_extension_rollout_plans_title(self) -> None:
12+
expect(self.age_extension_rollout_plans_title).to_contain_text("Age Extension Rollout Plans")

pages/base_page.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def __init__(self, page: Page):
88
self.sub_menu_link = self.page.get_by_role("link", name="Show Sub-menu")
99
self.hide_sub_menu_link = self.page.get_by_role("link", name="Hide Sub-menu")
1010
self.select_org_link = self.page.get_by_role("link", name="Select Org")
11-
self.back_button = self.page.get_by_role("link", name="Back")
11+
self.back_button = self.page.get_by_role("link", name="Back", exact=True)
1212
self.release_notes_link = self.page.get_by_role("link", name="- Release Notes")
1313
self.refresh_alerts_link = self.page.get_by_role("link", name="Refresh alerts")
1414
self.user_guide_link = self.page.get_by_role("link", name="User guide")
@@ -30,6 +30,7 @@ def __init__(self, page: Page):
3030
self.screening_subject_search_page = self.page.get_by_role("link", name="Screening Subject Search")
3131
# Bowel Cancer Screening System header
3232
self.bowel_cancer_screening_system_header = self.page.locator("#ntshAppTitle")
33+
self.main_menu__header = self.page.locator("#ntshPageTitle")
3334

3435
def click_main_menu_link(self)->None:
3536
for _ in range(3): # Try up to 3 times
@@ -67,6 +68,9 @@ def click_help_link(self)->None:
6768
def bowel_cancer_screening_system_header_is_displayed(self)->None:
6869
expect(self.bowel_cancer_screening_system_header).to_contain_text("Bowel Cancer Screening System")
6970

71+
def main_menu_header_is_displayed(self)->None:
72+
expect(self.main_menu__header).to_contain_text("Main Menu")
73+
7074
def go_to_contacts_list_page(self)->None:
7175
self.click(self.contacts_list_page)
7276

pages/batch_list_page.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ def __init__(self, page: Page):
1616
self.count_filter = self.page.locator("#countFilter")
1717
self.table_data = self.page.locator("td")
1818
self.batch_successfully_archived_msg = self.page.locator('text="Batch Successfully Archived and Printed"')
19+
self.batch_list_page_title = self.page.locator("#page-title")
20+
21+
def verify_batch_list_page_title(self, text) -> None:
22+
expect(self.batch_list_page_title).to_contain_text(text)
1923

2024
def verify_table_data(self, value)->None:
2125
expect(self.table_data.filter(has_text=value)).to_be_visible()
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from playwright.sync_api import Page, expect
2+
from pages.base_page import BasePage
3+
4+
class BowelScopeAppointments(BasePage):
5+
def __init__(self, page: Page):
6+
super().__init__(page)
7+
self.page = page
8+
#Bowel Scope Appointments - page locators
9+
self.page_title = self.page.locator("#ntshPageTitle")
10+
11+
def verify_page_title(self) -> None:
12+
expect(self.page_title).to_contain_text("Appointment Calendar")

pages/bowel_scope_page.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from playwright.sync_api import Page, expect, Locator
2+
from pages.base_page import BasePage
3+
4+
class BowelScope(BasePage):
5+
def __init__(self, page: Page):
6+
super().__init__(page)
7+
self.page = page
8+
#Bowel Scope - page locators
9+
self.view_bowel_scope_appointments_page = self.page.get_by_role("link", name="View Bowel Scope Appointments")
10+
11+
def go_to_view_bowel_scope_appointments_page(self) -> None:
12+
self.click(self.view_bowel_scope_appointments_page)

pages/communications_production_page.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from playwright.sync_api import Page
1+
from playwright.sync_api import Page, expect
22
from pages.base_page import BasePage
33

44
class CommunicationsProduction(BasePage):
@@ -11,6 +11,10 @@ def __init__(self, page: Page):
1111
self.letter_library_index_page = self.page.get_by_role("link", name="Letter Library Index")
1212
self.letter_signatory_page = self.page.get_by_role("link", name="Letter Signatory")
1313
self.electronic_communication_management_page = self.page.get_by_role("link", name="Electronic Communication Management")
14+
self.manage_individual_letter_page = self.page.get_by_text("Manage Individual Letter")
15+
16+
def verify_manage_individual_letter_page_visible(self) -> None:
17+
expect(self.manage_individual_letter_page).to_be_visible()
1418

1519
def go_to_active_batch_list_page(self)->None:
1620
self.click(self.active_batch_list_page)

pages/create_a_plan_page.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from playwright.sync_api import Page
1+
from playwright.sync_api import Page, expect
22
from pages.base_page import BasePage
33

44
class CreateAPlan(BasePage):
@@ -14,6 +14,7 @@ def __init__(self, page: Page):
1414
self.save_button = self.page.get_by_role("button", name="Save")
1515
self.note_field = self.page.get_by_placeholder("Enter note")
1616
self.save_note_button = self.page.locator("#saveNote").get_by_role("button", name="Save")
17+
self.create_a_plan_title = self.page.locator("#page-title")
1718

1819
def click_set_all_button(self)->None:
1920
self.click(self.set_all_button)
@@ -38,3 +39,6 @@ def fill_note_field(self, value)->None:
3839

3940
def click_save_note_button(self)->None:
4041
self.click(self.save_note_button)
42+
43+
def verify_create_a_plan_title(self) -> None:
44+
expect(self.create_a_plan_title).to_contain_text("View a plan")
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from playwright.sync_api import Page, expect
2+
from pages.base_page import BasePage
3+
4+
class ElectronicCommunicationManagement(BasePage):
5+
def __init__(self, page: Page):
6+
super().__init__(page)
7+
self.page = page
8+
#Electronic Communication Management - page locators
9+
self.electronic_communication_management_title = page.locator("#page-title")
10+
11+
def verify_electronic_communication_management_title(self) -> None:
12+
expect(self.electronic_communication_management_title).to_contain_text("Electronic Communication Management")

pages/generate_invitations_page.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,20 @@ def __init__(self, page: Page):
1313
self.refresh_button = self.page.get_by_role("button", name="Refresh")
1414
self.planned_invitations_total = self.page.locator("#col8_total")
1515
self.self_referrals_total = self.page.locator("#col9_total")
16+
self.generate_invitations_title = self.page.locator("#ntshPageTitle")
1617

1718
def click_generate_invitations_button(self)->None:
1819
self.click(self.generate_invitations_button)
1920

2021
def click_refresh_button(self)->None:
2122
self.click(self.refresh_button)
2223

24+
def verify_generate_invitations_title(self) -> None:
25+
expect(self.generate_invitations_title).to_contain_text("Generate Invitations")
26+
27+
def verify_invitation_generation_progress_title(self) -> None:
28+
expect(self.generate_invitations_title).to_contain_text("Invitation Generation Progress")
29+
2330
def wait_for_invitation_generation_complete(self) -> bool:
2431
"""
2532
This function is used to wait for the invitations to be generated.
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
from playwright.sync_api import Page
1+
from playwright.sync_api import Page, expect
22
from pages.base_page import BasePage
33

44
class InvitationsMonitoring(BasePage):
55
def __init__(self, page: Page):
66
super().__init__(page)
77
self.page = page
8+
self.invitations_monitoring_title = page.locator("#page-title")
89

910
def go_to_invitation_plan_page(self, sc_id)->None:
1011
self.click(self.page.get_by_role("link", name=sc_id))
12+
13+
def verify_invitations_monitoring_title(self) -> None:
14+
expect(self.invitations_monitoring_title).to_contain_text("Invitations Monitoring - Screening Centre")

0 commit comments

Comments
 (0)