in playwright_tests/pages/contribute/groups_page.py [0:0]
def __init__(self, page: Page):
super().__init__(page)
# General Groups Page Locators
self.add_group_profile_button = page.get_by_role(
"link", name="Add group profile", exact=True)
# Group Page Locators
self.group_avatar_image = page.locator("section#avatar-area img")
self.change_uploaded_group_image_option = page.locator(
"section#avatar-area p").get_by_role("link", name="Change", exact=True)
self.delete_uploaded_group_image_option = page.locator(
"section#avatar-area p a[title='Delete avatar']")
self.change_avatar_button = page.locator("section#avatar-area p a[title='Change avatar']")
self.edit_in_admin_button = page.locator("section#main-area").get_by_role(
"link", name="Edit in admin", exact=True)
self.group_profile_information = page.locator("div#doc-content p")
self.edit_group_profile_page_header = page.locator("article#group-profile h1")
self.edit_group_profile_button = page.locator("section#main-area").get_by_role(
"link", name="Edit group profile", exact=True)
self.edit_group_profile_textarea = page.locator("textarea#id_information")
self.save_group_profile_edit_button = page.locator(
"article#group-profile input[value='Save']")
self.edit_group_leaders_button = page.locator("div#group-leaders").get_by_role(
"link", name="Edit group leaders", exact=True)
self.add_group_leader_field = page.locator("div#group-leaders input#token-input-id_users")
self.add_group_leader_button = page.locator("input[value='Add Leader']")
self.private_message_group_members_button = page.locator("section#main-area > p.pm a")
self.user_notification = page.locator("ul.user-messages p")
self.edit_group_members_option = page.locator("div#group-members").get_by_role(
"link", name="Edit group members", exact=True)
self.add_group_member_field = page.locator("div#group-members input#token-input-id_users")
self.add_member_button = page.locator("div#group-members input[value='Add Member']")
self.group_leader_list = page.locator("div#group-leaders div.info a")
self.group_members_list = page.locator("div#group-members div.info a")
self.group_by_name = lambda group_name: page.get_by_role(
"link", name=group_name, exact=True)
self.pm_a_group_user = lambda username: page.locator("div.info").get_by_role(
"link", name=username, exact=True).locator("+ p a")
self.search_username = lambda username: page.locator(
f"//div[@class='name_search']/b[text()='{username}']")
self.listed_group_user = lambda username: page.locator("div.info").get_by_role(
"link", name=username, exact=True)
self.listed_group_leader = lambda username: page.locator(
"div#group-leaders").get_by_role("link", name=username, exact=True)
# Change Avatar Page Locators
self.upload_avatar_page_header = page.locator("article#change-avatar h1")
self.upload_avatar_image_preview = page.locator(
"//input[@id='id_avatar']/preceding-sibling::img")
self.upload_avatar_browse_button = page.locator("input#id_avatar")
self.upload_avatar_button = page.locator("input[type='submit']")
self.upload_avatar_cancel_option = page.get_by_role("link", name="Cancel", exact=True)
# Delete Avatar Page Locators
self.delete_uploaded_avatar_page_header = page.locator("article#avatar-delete h1")
self.delete_uploaded_avatar_image_preview = page.locator("div#avatar-preview img")
self.delete_uploaded_avatar_page_info = page.locator("form p")
self.delete_uploaded_avatar_button = page.locator("input[value='Delete avatar']")
self.delete_uploaded_avatar_cancel_button = page.get_by_role(
"link", name="Cancel", exact=True)
# Remove User Page Locators
self.remove_leader_page_header = page.locator("article#remove-leader h1")
self.remove_user_page_header = page.locator("article#remove-member h1")
self.remove_leader_button = page.locator("input[value='Remove leader']")
self.remove_member_button = page.locator("input[value='Remove member']")
self.remove_member_cancel_button = page.locator("div.form-actions").get_by_role(
"link", name="Cancel", exact=True)
self.remove_leader = lambda username: page.locator(
f"//div[@class='info']/a[text()='{username}']/../..//a[@title='Remove user from "
f"leaders']")
self.remove_user = lambda username: page.locator(
f"//div[@class='info']/a[text()='{username}']/../..//a[@title='Remove user from "
f"group']"
)