def _click_menu_element(self, parent: webelement, element_name: str): """Поиск и клик по элементу меню""" self.logger.debug(f'Searching menu element: {element_name}') class_value = parent.get_attribute('class') if 'collapsed' in class_value: parent.find_element(*self.SUBSECTION_HEAD).click() elements = parent.find_elements(*self.SUB_ELEMENTS) for element in elements: if element.text == element_name: element.click() return element raise ValueError(f'Couldn\'t find element labeled "{element_name}"')
def __parse_title(self, art_element: webelement) -> str: """Parse title (child of the article element).""" res: str = "No title" try: title_element: webelement = art_element.find_element_by_tag_name( "h1") res = title_element.text except NoSuchElementException: pass return res
def __parse_description(self, article_element: webelement) -> str: """Parse description (child of the current element).""" description_element = article_element.find_element_by_class_name( "description") return description_element.text
def __parse_date(self, article_element: webelement) -> date: """Parse date (child of the current element).""" date_element = article_element.find_element_by_xpath( './/span[@date="published_date"]') return datetime.strptime(date_element.text, "%d/%m/%Y").date()
def scroll_down(self, element: webelement) -> None: element.send_keys(Keys.PAGE_DOWN)
def doclick(self, element: webelement): try: element.click() print("Element Clicked") except NoSuchElementException: print("Not able to click element")
def dotypeintext(self, element: webelement, text): try: print("Typing: " + text) element.send_keys(text) except NoSuchElementException: print("Not able to input on this element")
def click(self, element: webelement) -> None: element.click()
def send_keys(self, element: webelement, keys: str) -> None: element.send_keys(keys)