from allure import step from playwright.sync_api import Page from src.helpers.logger import Logger from src.locators.common_locators import CommonLocators from src.ui_elements.base_ui_element import BaseUIElement from src.ui_elements.dropdown_ui_element import DropDownUIElement class CommonPage: log = Logger() def __init__(self, page: Page): self.page = page self.label_by_text = BaseUIElement(self.page, CommonLocators.LB_BY_TEXT, 'label') self.side_panel = BaseUIElement(self.page, CommonLocators.SIDE_PANEL, 'Side panel') self.btn_return = BaseUIElement(self.page, CommonLocators.BN_RETURN, 'Return button') self.alert_msg = BaseUIElement(self.page, CommonLocators.ALERT_MSG, 'Alert message') self.modal_lb_add_to_category = BaseUIElement(self.page, CommonLocators.MODAL_LB_ENTITY_TO_CATEGORY, 'Add to Category modal window') self.modal_lb_remove_from_category = BaseUIElement(self.page, CommonLocators.MODAL_LB_ENTITY_REMOVE_FROM_CATEGORY, 'Remove from category label modal window') self.modal_category_dropdown = DropDownUIElement(self.page, CommonLocators.MODAL_CATEGORY_DROPDOWN, 'Category dropdown') self.modal_category_dropdown_item = self.page.locator(CommonLocators.MODAL_CATEGORY_DROPDOWN_ITEM) self.modal_btn_save = BaseUIElement(self.page, CommonLocators.MODAL_BUTTON_SAVE, 'Modal Save button') self.modal_btn_cancel = BaseUIElement(self.page, CommonLocators.MODAL_BUTTON_CANCEL, 'Modal Cancel button') self.modal_btn_create_and_save = BaseUIElement(self.page, CommonLocators.MODAL_BUTTON_CREATE_AND_SAVE, 'Create and Save button') self.modal_btn_delete = BaseUIElement(self.page, CommonLocators.MODAL_BUTTON_DELETE, 'Modal Delete button') self.modal_btn_remove = BaseUIElement(self.page, CommonLocators.MODAL_BUTTON_REMOVE, 'Modal Remove button') self.share_user = BaseUIElement(self.page, CommonLocators.SHARE_USER, "Share User") self.modal_btn_share = BaseUIElement(self.page, CommonLocators.MODAL_BUTTON_SHARE, 'Modal Share button') self.input_placeholder = BaseUIElement(self.page, CommonLocators.MODAL_INPUT_PLACEHOLDER, 'Input Placeholder') self.placeholder_category_title = BaseUIElement(self.page, CommonLocators.PLACEHOLDER_CATEGORY_TITLE, 'Category Title placeholder') self.modal_btn_add_to_category = BaseUIElement(self.page, CommonLocators.MODAL_ADD_TO_CATEGORY, 'Add to Category button') self.error_titles_container = BaseUIElement(self.page, CommonLocators.ERROR_TITLES_CONTAINER, 'Error titles container') self.error_title = BaseUIElement(self.page, CommonLocators.ERROR_TITLE, 'Error title') self.intercom = BaseUIElement(self.page, CommonLocators.INTERCOM, 'Intercom') @step("Return amplitude event with event_properties") def get_amplitude_event(self, amplitude_response): amplitude_payload = amplitude_response.value.request.post_data_json events = amplitude_payload['events'] for event in events: if 'event_properties' in event: return event return