selenium_automation_project/page_objects/danger_zone_page.py

56 lines
1.8 KiB
Python

from typing import Self
from selenium.webdriver.common import by
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from page_objects.base_page import BasePage
class DangerZonePage(BasePage):
"""
Page object for the Danger Zone page.
"""
# Locators
DELETE_ACCOUNT_BUTTON = (By.XPATH, '/html/body/div/div/main/div/div[3]/div/div[2]/button')
CONFIRM_DELETE_BUTTON = (By.XPATH, '/html/body/div[3]/div[3]/button')
CANCEL_DELETE_BUTTON = (By.XPATH, '/html/body/div[3]/button')
DIALOG_TITLE = (By.XPATH, '/html/body/div[3]/div[1]/h2') # Assuming dialog title
DIALOG_INPUT = (By.XPATH,'/html/body/div[3]/div[2]/input')
_DANGER_ZONE_TITLE = (By.XPATH,'//*[@id="root"]/div/main/div/div[3]/div/div[1]/h3')
def get_page_header(self):
"""
Gets the header text of the page.
Assumes the header is an h1 element.
"""
return self.get_text((By.TAG_NAME, "h1"))
def click_delete_account(self):
"""
Clicks the 'Delete Account' button to open the confirmation dialog.
"""
self.click(self.DELETE_ACCOUNT_BUTTON)
def verify_confirmation_dialog_exist(self):
return self.get_text(self.DIALOG_TITLE)
def set_dialog_input(self):
self.send_keys(self.DIALOG_INPUT,'delete my account')
return ''
def click_cancel_in_dialog(self, timeout=5):
"""
Safely clicks the cancel button in the confirmation dialog.
"""
self.click(self.CANCEL_DELETE_BUTTON)
def click_confirm_in_dialog(self):
"""
Clicks the 'Confirm' button within the confirmation dialog.
"""
self.click(self.CONFIRM_DELETE_BUTTON)
def verify_danger_zone_exist(self):
return self.get_text(self._DANGER_ZONE_TITLE)