pages/desktop/reviewer_tools/log_details.py (34 lines of code) (raw):
from selenium.webdriver.common.by import By
from pages.desktop.base import Base
class LogDetails(Base):
_log_details_text_locator = (By.XPATH, "//h2[contains(text(),'Log details')]")
_review_author_text_locator = (By.XPATH, "//dt[contains(text(),'Review Author')]")
_addon_title_text_locator = (By.XPATH, "//dt[contains(text(),'Add-on Title')]")
_review_text_locator = (By.XPATH, "//dt[contains(text(),'Review Text')]")
_undelete_button_locator = (By.CSS_SELECTOR, "input#submit-undelete-review")
# Log details section interaction methods
@property
def log_details_text(self):
return self.find_element(*self._log_details_text_locator)
@property
def review_author_text(self):
return self.find_element(*self._review_author_text_locator)
@property
def addon_title_text(self):
return self.find_element(*self._addon_title_text_locator)
@property
def review_text(self):
return self.find_element(*self._review_text_locator)
@property
def undelete_button(self):
return self.find_element(*self._undelete_button_locator)
# Assert Method
def assert_log_details_section_elements(self):
assert self.review_author_text.is_displayed(), "Review author text is not displayed"
assert self.addon_title_text.is_displayed(), "Addon title text is not displayed"
assert self.review_text.is_displayed(), "Review text is not displayed"
def wait_for_page_to_load(self):
self.wait.until(
lambda _: self.find_element(*self._log_details_text_locator).is_displayed(),
message="Log details was not loaded",
)
assert "Log details" in self.log_details_text.text
return self