Source code for liveobs_ui.page_object_models.desktop.kanban_view_common

""" Common Kanban view functionality """
from selenium.common.exceptions import NoSuchElementException
from liveobs_ui.page_object_models.desktop.desktop_common import \
    BaseDesktopPage
from liveobs_ui.selectors.desktop.kanban_selectors import KANBAN_CARD, \
    KANBAN_CARD_CONTENT, KANBAN_CONTAINER


[docs]class BaseKanbanViewPage(BaseDesktopPage): """ Interaction with Kanban views """
[docs] def get_kanban_cards(self): """ Get all the kanban cards in the current view :return: List of kanban card elements """ try: self.wait_for_element(KANBAN_CARD) except NoSuchElementException: pass return self.driver.find_elements(*KANBAN_CARD)
[docs] def get_kanban_card_by_name(self, search_string): """ Get a kanban card that contains the specified search string :param search_string: String to find in kanban card content :return: Kanban card element """ for kanban_item in self.get_kanban_cards(): kanban_item_content = \ kanban_item.find_element(*KANBAN_CARD_CONTENT) if search_string in kanban_item_content.text: return kanban_item
[docs] def open_kanban_card(self, card): """ Open the supplied kanban card :param card: Element for kanban card to open """ self.click_and_verify_change(card, KANBAN_CONTAINER, hidden=True)
[docs] def open_kanban_card_with_name(self, search_string): """ Locate and click the kanban card that contains the specified search string :param search_string: String to find with kanban card content """ self.open_kanban_card(self.get_kanban_card_by_name(search_string))
[docs] def wait_for_kanban_view_to_load(self): """ Wait until the kanban container has loaded, useful for ensuring that nothing is executed until the view has loaded """ self.wait_for_element(KANBAN_CONTAINER)