def open_notes(self): open_menu_btn = Lib.simple_wait_element_css( self.driver, self.OPEN_MENU_CSS) open_menu_btn.click() notes_menu = Lib.simple_wait_element_css( self.driver, self.NOTES_BTN_CSS) notes_menu.click()
def save(self): btn_confirm = Lib.simple_wait_element_css(self.driver, self.BTN_CONFIRM_CSS) btn_confirm.click() btn_close = Lib.simple_wait_element_css(self.driver, self.BTN_CLOSE_CSS) btn_close.click()
def add_video(self): before_click = len(self.driver.find_elements_by_xpath(self.VIDEO_LIST)) element = Lib.visibility_wait_element(self.driver, self.VIDEO_BLOCK) Lib.hover(self.driver, element) Lib.simple_wait_element(self.driver, self.BUTTON_ADD).click() after_click = len(self.driver.find_elements_by_xpath(self.VIDEO_LIST)) return (after_click != before_click)
def back_to_start_gender(self): self.open_profile() current_id = self.get_current_gender() _id = 1 if current_id == 1: _id = 2 Lib.simple_wait_element_css( self.driver, "input[id='field_gender_%d']" % _id).click()
def unfollow(self): url = Lib.simple_wait_element(self.driver, self.URL_CSS) self.driver.get(url.get_attribute('href')) unfollow_arrow_btn = Lib.simple_wait_element_css( self.driver, self.ARROW_UNFOLLOW_BTN_CSS) unfollow_arrow_btn.click() unfollow_btn = Lib.simple_wait_element_css(self.driver, self.UNFOLLOW_CSS) unfollow_btn.click()
def delete_album(self): self.select_created_album() self.set_edit_album() delete_link = Lib.simple_wait_element_css(self.driver, self.DELETE_ALBUM_CSS) delete_link.click() delete_btn = Lib.simple_wait_element_css(self.driver, self.DELETE_CONFIRM_BTN) delete_btn.click()
def authorized(self, who=True): Lib.simple_wait_element(self.driver, self.LOGIN_INPUT) if who: self.set_login(self.LOGIN1) self.set_password(self.PASSWORD1) else: self.set_login(self.LOGIN2) self.set_password(self.PASSWORD2) self.submit()
def get_current_gender(self): self.click_edit() Lib.simple_wait_element_css(self.driver, '#field_gender_1') isChecked = self.driver.execute_script( 'return document.getElementById("field_gender_1").checked') cur_gender = -1 if isChecked: cur_gender = 1 else: cur_gender = 2 return cur_gender
def scroll_to_new(self): self.OUTGOING_FRIENDS_COUNT = int( Lib.simple_wait_element_css(self.driver, self.OUTGOING_FRIENDS_COUNT_CSS).text) self.PENDING_FRIENDS = Lib.simple_get_elements_css( self.driver, self.PENDING_FRIENDS_CSS) while len(self.PENDING_FRIENDS) < self.OUTGOING_FRIENDS_COUNT: self.driver.execute_script( "window.scrollTo(0, document.body.scrollHeight)") self.PENDING_FRIENDS = Lib.simple_get_elements_css( self.driver, self.PENDING_FRIENDS_CSS)
def chanel_name(self, name): before_click = len(self.driver.find_elements_by_xpath( self.CHECK_VALUE)) Lib.simple_wait_element(self.driver, self.BUTTON_ADD).click() Lib.visibility_wait_element(self.driver, self.INPUT_BLOCK) Lib.simple_set_text_to_element(self.driver, self.INPUT_BLOCK, name) Lib.simple_wait_element(self.driver, self.SUBMIT_BUTTON).click()
def get_albums(self): albums = [] found_albums = Lib.simple_wait_elements_css(self.driver, self.ALBUMS_CSS) for album in found_albums: albums.append(album.text) return albums
def wait_process_after_choose_tab(self): try: Lib.wait_element_with_attribute(self.driver, True, self.NOTIFICATION_TAB_CONTENT, "__process") return True except TimeoutException: return False try: Lib.wait_element_with_attribute(self.driver, False, self.NOTIFICATION_TAB_CONTENT, "__process") return True except TimeoutException: return False
def get_all_names(self): elements = Lib.simple_wait_elements( self.driver, self.LIST_ALL_LIKES_NAMES) names = [] for element in elements: names.append(element.text) return names
def follow(self): first_group = Lib.simple_wait_element(self.driver, self.FIRST_GROUP_XPATH) if not self.checkFollow(): join_btn = first_group.find_element_by_css_selector( self.JOIN_BTN_CSS) join_btn.click()
def like_first_found_post(self): like_btn = Lib.simple_wait_element_css(self.driver, self.LIKE_BTN_CSS) self.DATA_ID = like_btn.get_attribute(self.LIKE_BTN_ATTRIBUTE) self.likes_count = like_btn.get_attribute(self.DATA_COUNT) if self.likes_count == None: self.likes_count = 0 self.jsClick(like_btn) # Здесь он нужен
def get_all_links(self): elements = Lib.simple_wait_elements( self.driver, self.LIST_ALL_LIKES_NAMES) names = [] for element in elements: names.append(element.get_attribute("href")) return names
def get_links_last_liked(self, id): self.open_who_likes(id) elements = Lib.simple_wait_elements( self.driver, self.LIKE_PANEL_LAST_LIKED_LINKS) links = [] for element in elements: links.append(element.get_attribute("href")) return links
def get_names_last_liked(self, id): self.open_who_likes(id) elements = Lib.simple_wait_elements( self.driver, self.LIKE_PANEL_LAST_LIKED_NAMES) names = [] for element in elements: names.append(element.text) return names
def get_pending_friends(self): self.USER_URL = Lib.simple_wait_element_css( self.driver, self.CURRENT_USER_CSS).get_attribute('href') self.driver.get(self.USER_URL + self.PENDING_PREFIX) self.scroll_to_new() ids = [] for f in self.PENDING_FRIENDS: ids.append(f.get_attribute("href").split("/")[-1]) return self.FRIEND_ID in ids
def add_emotion_to_like(self, old_reaction=-1): element = Lib.visibility_wait_element(self.driver, self.WALL_CONTENT) self.driver.execute_script("arguments[0].scrollIntoView();", element) reaction_number = REACTIONS_LIKE while reaction_number == old_reaction: reaction_number = REACTIONS_LOL element = Lib.simple_wait_elements(self.driver, self.LIKE_BUTTONS)[0] Lib.hover(self.driver, element) Lib.visibility_wait_element(self.driver, self.REACTION_PANEL) Lib.simple_wait_element( self.driver, self.REACTIONS[reaction_number]).click()
def change_gender(self): new_gender = -1 if self.START_GENDER == 1: new_gender = 2 else: new_gender = 1 _id = "field_gender_%d" % new_gender gender_radio = Lib.simple_wait_element_css(self.driver, "input[id='%s']" % _id) gender_radio.click()
def report_notification(self): element = Lib.simple_wait_element(self.driver, self.NOTIFICATION_ELEMENT) Lib.hover(self.driver, element) Lib.visibility_wait_element(self.driver, self.NOTIFICATION_REPORT).click() Lib.visibility_wait_element(self.driver, self.NOTIFICATION_REPORT_SPAM).click()
def after_click(self): element = Lib.visibility_wait_element(self.driver, self.MUSIC_BLOCK) Lib.hover(self.driver, element) Lib.simple_wait_element(self.driver, self.BUTTON_ADD).click() after_number = Lib.visibility_wait_element(self.driver, self.MUSIC_NUMBER).text return after_number
def get_number_emotion(self): reaction_class = Lib.visibility_wait_element( self.driver, self.REACTION_ICON).get_attribute("class") if reaction_class == 'widget_ico __react __react-like': return REACTIONS_LIKE if reaction_class == 'widget_ico __react __react-lol': return REACTIONS_LOL if reaction_class == 'widget_ico __react __react-sorrow': return REACTIONS_SORROW if reaction_class == 'widget_ico __react __react-heart': return REACTIONS_HEART if reaction_class == 'widget_ico __react __react-wow': return REACTIONS_WOW if reaction_class == 'widget_ico widget_ico ic_klass' or reaction_class == 'widget_ico ic_klass': return REACTIONS_CLASS return REACTIONS_NOT_FOUND
def select_friend(self): Lib.simple_wait_element(self.driver, self.FIRST_ACCOUNT_NAME).click()
def invite__friend_to_group(self): element = Lib.simple_wait_element(self.driver, self.FIRST_ACCOUNT_NAME) Lib.hover(self.driver, element) Lib.visibility_wait_element(self.driver, self.INVITE_TO_GROUP).click() Lib.simple_wait_elements(self.driver, self.GROUP_TO_INVITE)[0].click()
def before_click(self): before_number = Lib.visibility_wait_element(self.driver, self.MUSIC_NUMBER).text return before_number
def remove_like(self): like_btn = Lib.simple_wait_element_css( self.driver, self.LIKE_BTN_OWNER % self.DATA_ID) like_btn.click()
def get_likes_from_btn_by_owner(self): like_btn = Lib.simple_wait_element_css( self.driver, self.LIKE_BTN_OWNER % self.DATA_ID) return like_btn.get_attribute(self.DATA_COUNT)
def open_all_likes(self, id): self.open_who_likes(id) Lib.visibility_wait_element(self.driver, self.LIST_ALL_LIKES).click()