Ejemplo n.º 1
0
 def search_and_select(self, text):
     selector_dialog = SEARCH_DIALOG
     selector_loader = CHART_LOADER
     self.search(text)
     safe_click(self.get_search_result(text))
     self.basic_wait(selector_dialog, False)
     self.basic_wait(selector_loader, False)
Ejemplo n.º 2
0
 def open_search_dialog(self):
     try:
         self.get_search_dialog()
     except NoSuchElementException:
         selector = SEARCH_DIALOG
         safe_click(self.get_token_selector())
         self.basic_wait(selector, True)
Ejemplo n.º 3
0
 def open_chart_settings_menu(self):
     try:
         self.get_chart_settings_menu()
     except NoSuchElementException:
         selector = CHART_SETTINGS_MENU
         safe_click(self.get_chart_settings_button())
         self.basic_wait(selector, True)
Ejemplo n.º 4
0
 def open_publish_menu(self):
     try:
         self.get_publish_insight_button()
     except NoSuchElementException:
         safe_click(self.get_publish_menu_button())
         self.wait.until_not(lambda wd: wd.find_element_by_css_selector(
             EDITOR_PUBLISH_INSIGHT_LOADER).is_displayed())
Ejemplo n.º 5
0
 def filter_insights_by_first_tag(self, insight):
     tags = self.get_insight_tags(insight)
     if len(tags) == 0:
         raise TagError("There're no tags on given insight!")
     tag_text = tags[0].text
     safe_click(tags[0])
     self.wait_until_tab_is_active('All Insights')
     return tag_text
Ejemplo n.º 6
0
 def open_share_dialog(self):
     try:
         self.get_share_dialog()
     except NoSuchElementException:
         selector = SHARE_DIALOG
         self.open_chart_settings_menu()
         safe_click(self.get_chart_settings_menu_option("share"))
         self.basic_wait(selector, True)
Ejemplo n.º 7
0
 def close_popup(self, selector, timeout):
     try:
         self.basic_wait(selector, True, timeout)
     except TimeoutException:
         return
     button = self.driver.find_element_by_css_selector(selector)
     safe_click(button)
     self.basic_wait(selector, False)
Ejemplo n.º 8
0
 def close_chart_settings_menu(self):
     try:
         self.get_chart_settings_menu()
     except NoSuchElementException:
         pass
     else:
         selector = CHART_SETTINGS_MENU
         safe_click(self.get_modal_overlay())
         self.basic_wait(selector, False)
Ejemplo n.º 9
0
 def open_metrics_menu(self):
     try:
         self.get_metrics_menu()
     except NoSuchElementException:
         selector_menu = METRICS_MENU
         selector_loader = METRICS_MENU_LOADER
         safe_click(self.get_metrics_menu_button())
         self.basic_wait(selector_menu, True)
         self.basic_wait(selector_loader, False)
Ejemplo n.º 10
0
 def add_insight_tag(self, tag):
     self.get_tag_input().send_keys(tag)
     self.wait.until(lambda wd: tag.lower(
     ) in [element.text.lower() for element in self.get_tag_list_items()])
     safe_click(self.get_tag_list_item(tag))
     self.wait.until(lambda wd: tag.lower() in [
         element.text.lower().strip(' \n')
         for element in self.get_selected_tags()
     ])
Ejemplo n.º 11
0
 def close_metrics_menu(self):
     try:
         self.get_metrics_menu()
     except NoSuchElementException:
         pass
     else:
         selector = METRICS_MENU
         safe_click(self.get_modal_overlay())
         self.basic_wait(selector, False)
Ejemplo n.º 12
0
 def close_search_dialog(self):
     try:
         self.get_search_dialog()
     except NoSuchElementException:
         pass
     else:
         selector = SEARCH_DIALOG
         close_button = self.get_search_dialog_close()
         safe_click(close_button)
         self.basic_wait(selector, False)
Ejemplo n.º 13
0
 def filter_insights_by_tag(self, insight, tag):
     tags = list(
         filter(lambda x: x.text.lower() == tag.lower(),
                self.get_insight_tags(insight)))
     if len(tags) == 0:
         raise TagError(f"There're no '{tag}' tag on given insight!")
     tag_text = tags[0].text
     safe_click(tags[0])
     self.wait_until_tab_is_active('All Insights')
     return tag_text
Ejemplo n.º 14
0
 def deselect_metric(self, metric):
     try:
         active_metric = self.get_active_metric(metric)
     except NoSuchElementException:
         pass
     else:
         selector = CHART_LOADER
         safe_click(self.get_active_metric_close(active_metric))
         self.wait.until_not(
             lambda wd: self.get_active_metric(metric).is_displayed())
         self.basic_wait(selector, False)
Ejemplo n.º 15
0
 def close_share_dialog(self):
     try:
         self.get_share_dialog()
     except NoSuchElementException:
         pass
     else:
         selector = SHARE_DIALOG
         close_button = self.get_share_dialog_close()
         safe_click(close_button)
         self.basic_wait(selector, False)
     finally:
         self.close_chart_settings_menu()
Ejemplo n.º 16
0
 def try_toggle_tag_list(self, state):
     try:
         self.get_tag_list()
         if state:
             return
         else:
             safe_click(self.get_tag_list_toggle())
     except NoSuchElementException:
         if state:
             safe_click(self.get_tag_list_toggle())
         else:
             return
Ejemplo n.º 17
0
 def select_metric(self, metric):
     try:
         self.get_active_metric(metric)
     except NoSuchElementException:
         selector = CHART_LOADER
         self.open_metrics_menu()
         self.select_metrics_category(metrics[metric][0])
         metric_element = self.get_metric(metric)
         safe_click(self.get_metric_add(metric_element))
         self.wait.until(
             lambda wd: self.get_active_metric(metric).is_displayed())
         self.basic_wait(selector, False)
         self.close_metrics_menu()
Ejemplo n.º 18
0
 def close_cookie_popup(self):
     selector = CLOSE_COOKIE_POPUP_BUTTON
     try:
         WebDriverWait(
             self.driver,
             5).until(lambda wd: self.driver.find_element_by_css_selector(
                 selector).is_displayed())
     except TimeoutException:
         return
     button = self.driver.find_element_by_css_selector(selector)
     safe_click(button)
     self.wait.until_not(
         lambda wd: self.driver.find_element_by_css_selector(
             selector).is_displayed())
Ejemplo n.º 19
0
 def delete_draft(self, draft, do_delete):
     number_of_drafts_initial = len(self.get_drafts())
     safe_click(self.get_delete_draft_button(draft))
     self.wait.until(
         lambda wd: self.get_delete_draft_dialog(draft).is_displayed())
     dialog = self.get_delete_draft_dialog(draft)
     button = self.get_delete_draft_confirm_button(
         dialog) if do_delete else self.get_delete_draft_cancel_button(
             dialog)
     safe_click(button)
     self.wait.until_not(lambda wd: wd.find_element_by_css_selector(
         DRAFT_DELETE_DIALOG).is_displayed())
     if do_delete:
         self.wait.until(lambda wd: len(self.get_drafts()) ==
                         number_of_drafts_initial - 1)
Ejemplo n.º 20
0
 def clear_tags(self):
     safe_click(self.get_clear_tags_button())
     self.wait.until(lambda wd: len(self.get_selected_tags()) == 0)
     self.wait.until_not(lambda wd: wd.find_element_by_css_selector(
         EDITOR_PUBLISH_INSIGHT_LOADER).is_displayed())
Ejemplo n.º 21
0
 def open_account_menu(self):
     selector = ACCOUNT_MENU
     button = self.get_account_menu_button()
     safe_click(button)
     self.basic_wait(selector, True)
Ejemplo n.º 22
0
 def write_insight_body(self, body):
     safe_click(self.get_editor_body())
     body_input = self.driver.switch_to.active_element
     body_input.send_keys(body)
Ejemplo n.º 23
0
 def open_editor(self):
     try:
         self.get_editor_title()
     except NoSuchElementException:
         safe_click(self.get_write_insight_button())
         self.wait.until(lambda wd: self.get_editor_title().is_displayed())
Ejemplo n.º 24
0
 def preview_draft(self, draft):
     draft_title = self.get_draft_title(draft).text
     safe_click(self.get_draft_title(draft))
     self.wait.until(lambda wd: self.get_read_title().text == draft_title)
Ejemplo n.º 25
0
 def publish_insight(self):
     self.open_publish_menu()
     safe_click(self.get_publish_insight_button())
     self.wait.until(lambda wd: self.get_active_tab().text == 'My Insights')
Ejemplo n.º 26
0
 def read_insight(self, insight):
     safe_click(self.get_insight_title(insight))
     self.wait.until(lambda wd: self.get_read_title().is_displayed())
Ejemplo n.º 27
0
 def filter_insights_by_author(self, insight):
     author_element = self.get_insight_author(insight)
     author = author_element.text
     safe_click(author_element)
     self.wait_until_tab_is_active('All Insights')
     return author
Ejemplo n.º 28
0
 def edit_draft(self, draft):
     safe_click(self.get_edit_draft_button(draft))
     self.wait.until(lambda wd: self.get_editor_title().is_displayed())
Ejemplo n.º 29
0
 def select_metrics_category(self, category):
     selector = METRICS_MENU_LOADER
     safe_click(self.get_metrics_category(category))
     self.wait.until(lambda wd: category.lower() in self.
                     get_metrics_category_active().text.lower())
     self.basic_wait(selector, False)
Ejemplo n.º 30
0
 def select_period(self, period):
     selector = CHART_LOADER
     period_selector = self.get_period(period)
     safe_click(period_selector)
     self.wait.until(lambda wd: self.get_active_period().text == period)
     self.basic_wait(selector, False)