fix and add som usecases
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
from selenium.webdriver.common.by import By
|
||||
from .base_page import BasePage
|
||||
|
||||
class HomePage(BasePage):
|
||||
"""
|
||||
Page Object for the Home page (Dashboard).
|
||||
"""
|
||||
|
||||
# --- Locators ---
|
||||
_WELCOME_MESSAGE = (By.XPATH, '//*[@id="root"]/div/main/div/div[1]/h1')
|
||||
_LOGOUT_BUTTON = (By.XPATH, "//button[text()='Logout']")
|
||||
_PROFILE_TAB = (By.XPATH, "//button[@role='tab' and text()='Profile']")
|
||||
_DASHBOARD_CONTENT = (By.XPATH, '/html/body/div/div/main/div/div[2]/div[2]/div')
|
||||
_DASHBORAD_TEST_CASES_TITLE = (By.XPATH,'//*[contains(@id,"content-dashboard")]/div/div[1]//h3')
|
||||
def __init__(self, driver):
|
||||
"""Initializes the HomePage with the WebDriver."""
|
||||
super().__init__(driver)
|
||||
self.page_path = "/" # The home page is at the root path after login
|
||||
|
||||
# --- Page Actions ---
|
||||
|
||||
def open(self, base_url: str):
|
||||
"""Navigates to the home page."""
|
||||
super().open(base_url, self.page_path)
|
||||
|
||||
def get_welcome_message(self) -> str:
|
||||
"""
|
||||
Gets the welcome message text from the page header.
|
||||
"""
|
||||
try:
|
||||
return self.find_visible_element(self._WELCOME_MESSAGE).text
|
||||
except:
|
||||
return ""
|
||||
|
||||
def is_dashboard_content_visible(self) -> bool:
|
||||
"""
|
||||
Checks if the main dashboard content area is visible.
|
||||
"""
|
||||
return self.get_text(self._DASHBORAD_TEST_CASES_TITLE) == 'Test Cases'
|
||||
|
||||
def switch_to_profile_tab(self):
|
||||
"""
|
||||
Clicks the 'Profile' tab to switch to the profile view.
|
||||
"""
|
||||
self.click(self._PROFILE_TAB)
|
||||
|
||||
def click_logout_button(self):
|
||||
"""Clicks the logout button."""
|
||||
self.click(self._LOGOUT_BUTTON)
|
||||
|
||||
Reference in New Issue
Block a user