def test_infoviz_getting_displayed_after_editing(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] new_audience_name = self.configAB[section]["new_audience_name"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) audience_page = AudiencePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name).click() project_page.audience_menu_icon(audience_name).click() project_page.audienceEditIcon(audience_name) audience_page.audience_rename(new_audience_name) sleep(10) Info_Viz = self.webdriver.find_element_by_xpath("//div[contains(@id,'dataVisualizations')]") # info_Viz_Icon = self.webdriver.find_element_by_xpath("//button[contains(@ng-click,'$ctrl.selectChartType(1)')]") if Info_Viz.is_displayed(): print("Infoviz is getting displayed") else: print("Infoviz is not getting displayed") # renaming to original one project_page.AudienceName(new_audience_name).click() project_page.audience_menu_icon(new_audience_name).click() project_page.audienceEditIcon(new_audience_name) audience_page.audience_rename(audience_name)
def test_error_message_at_viz_canvas(self): rand = my_random_string(3) home_page = HomePage(self.webdriver, self.config) home_page.createProject('Test Proj' + rand, 'NA - United States') sleep(10) project_page = ProjectPage(self.webdriver, self.config) audience_page = AudiencePage(self.webdriver, self.config) project_page.add_audience_button().click() sleep(5) audience_page.audience_name_textbox().send_keys('Test Audience') audience_page.add_dataSource('Purchase Behavior') self.webdriver.find_element_by_xpath("//select[contains(@ng-model,'criteriaColumnSelector')]").click() self.webdriver.find_element_by_xpath("//option[text()='Category']").click() self.webdriver.find_element_by_xpath("//input[@placeholder='Begin typing to search...']").click() self.webdriver.find_element_by_xpath("//li[contains(text(),'AIR FRESHENERS')]").click() criteria_createButton = self.webdriver.find_element_by_xpath( "//button[contains(@ng-click,'$ctrl.criteriaApply()') and (@class='red-btn')]") self.webdriver.execute_script("arguments[0].click();", criteria_createButton) # audience_page.criteria_createButton().click() sleep(5) audience_page.save_and_create_button().click() sleep(10) project_page.AudienceName('Test Audience').click() message = self.webdriver.find_element_by_xpath("//div[@class='spinner-wrapper']//following::p[1]").text self.assertEqual(message,"Your audience is being built.","Incorrect message is getting displayed at Viz Canvas") project_page.project_menu_icon('Test Proj' + rand).click() project_page.project_delete_icon('Test Proj' + rand).click() project_page.AlertOkButton().click()
def test_distribution_icon_disabled(self): rand = my_random_string(3) home_page = HomePage(self.webdriver, self.config) home_page.createProject('Test Proj' + rand, 'NA - United States') sleep(10) project_page = ProjectPage(self.webdriver, self.config) audience_page = AudiencePage(self.webdriver, self.config) project_page.add_audience_button().click() sleep(5) audience_page.audience_name_textbox().send_keys('Test Audience') audience_page.add_dataSource('Purchase Behavior') self.webdriver.find_element_by_xpath("//select[contains(@ng-model,'criteriaColumnSelector')]").click() self.webdriver.find_element_by_xpath("//option[text()='Category']").click() self.webdriver.find_element_by_xpath("//input[@placeholder='Begin typing to search...']").click() self.webdriver.find_element_by_xpath("//li[contains(text(),'AIR FRESHENERS')]").click() criteria_createButton = self.webdriver.find_element_by_xpath( "//button[contains(@ng-click,'$ctrl.criteriaApply()') and (@class='red-btn')]") self.webdriver.execute_script("arguments[0].click();", criteria_createButton) # audience_page.criteria_createButton().click() sleep(5) audience_page.save_and_create_button().click() sleep(10) project_page.AudienceName('Test Audience').click() distribution_icon = project_page.audience_share_icon('Test Audience') if distribution_icon.is_enabled(): print("Distribution Icon is disabled") else: print("Distribution Icon is not disabled") project_page.project_menu_icon('Test Proj' + rand).click() project_page.project_delete_icon('Test Proj' + rand).click() project_page.AlertOkButton().click()
def test_tag_at_history_panel(self): rand = my_random_string(3) home_page = HomePage(self.webdriver, self.config) home_page.createProject('Test Proj' + rand, 'NA - United States') sleep(10) project_page = ProjectPage(self.webdriver, self.config) audience_page = AudiencePage(self.webdriver, self.config) project_page.add_audience_button().click() sleep(5) audience_page.audience_name_textbox().send_keys('Test Audience') audience_page.add_dataSource('Purchase Behavior') self.webdriver.find_element_by_xpath( "//select[contains(@ng-model,'criteriaColumnSelector')]").click() self.webdriver.find_element_by_xpath( "//option[text()='Category']").click() self.webdriver.find_element_by_xpath( "//input[@placeholder='Begin typing to search...']").click() self.webdriver.find_element_by_xpath( "//li[contains(text(),'AIR FRESHENERS')]").click() criteria_createButton = self.webdriver.find_element_by_xpath( "//button[contains(@ng-click,'$ctrl.criteriaApply()') and (@class='red-btn')]" ) self.webdriver.execute_script("arguments[0].click();", criteria_createButton) # audience_page.criteria_createButton().click() sleep(5) audience_page.save_audience_button().click() sleep(10) project_page.AudienceName('Test Audience').click() project_page.HistoryTab().click() sleep(10) tag = self.webdriver.find_element_by_xpath( "//audience-history-list/ul/li/audience-history-item/ul[1]/li[2]" ).text now = datetime.datetime.now() todays_date = now.strftime("%b %d, %Y").replace(' 0', ' ') date = self.webdriver.find_element_by_xpath( "//audience-history-list/ul/li/audience-history-item/ul[1]/li[3]" ).text # Verify today's time with log time time = self.webdriver.find_element_by_xpath( "//audience-history-list/ul/li/audience-history-item/ul[1]/li[4]" ).text tag_time_value = int(time[:-3].replace(":", "")) curr_time_value = int(now.strftime("%I") + now.strftime("%M")) assert (curr_time_value - tag_time_value) < 45, 'Time displayed in log seems incorrect' self.assertEqual(date, todays_date, "created tag date incorrect") self.assertEqual(tag, "Created", "created tag incorrect") project_page.project_menu_icon('Test Proj' + rand).click() project_page.project_delete_icon('Test Proj' + rand).click() project_page.AlertOkButton().click()
def test_existingAudience_rename(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] new_audience_name = self.configAB[section]["new_audience_name"] home_page = HomePage(self.webdriver, self.config) self.webdriver.switch_to_default_content() home_page.lbl_Audience_Explorer_omni().click() sleep(20) iframe = self.webdriver.find_elements_by_tag_name('iframe')[0] self.webdriver.switch_to.frame(iframe) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) try: project_page.audience_menu_icon(audience_name).click() project_page.audienceEditIcon(audience_name) audience_page = AudiencePage(self.webdriver, self.config) audience_page.audience_rename(new_audience_name) project_page.AudienceName(new_audience_name).click() #again renaming it back to original project_page.audience_menu_icon(new_audience_name).click() project_page.audienceEditIcon(new_audience_name) audience_page = AudiencePage(self.webdriver, self.config) audience_page.audience_rename(audience_name) project_page.AudienceName(audience_name).click() except: project_page.audience_menu_icon(new_audience_name).click() project_page.audienceEditIcon(new_audience_name) audience_page = AudiencePage(self.webdriver, self.config) audience_page.audience_rename(audience_name) project_page.AudienceName(audience_name).click()
def test_audience_tile_color(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name).click() color = project_page.verifyAudienceBackgroundColor(audience_name) self.assertEqual(color, "rgba(254, 216, 130, 1)", "Background Color for Audience tile is wrong")
def test_distribution_icon_disabled(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name).click() distribution_icon = project_page.audience_share_icon(audience_name) if distribution_icon.is_enabled(): print("Distribution Icon is disabled") else: print("Distribution Icon is not disabled")
def test_error_message_at_viz_canvas(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name).click() message = self.webdriver.find_element_by_xpath( "//div[@class='spinner-wrapper']//following::p[1]").text self.assertEqual( message, "We are experiencing technical difficulties building this audience. Please try again later or contact support at omnisupport.annalect.com.", "Incorrect message is getting displayed at Viz Canvas")
def test_error_message_at_viz_canvas(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name).click() message = self.webdriver.find_element_by_xpath( "//div[@class='spinner-wrapper']//following::p[1]").text self.assertEqual( message, "This audience has not been built. To build your audience, go to criteria builder and click Save and Create.", "Incorrect message is getting displayed at Viz Canvas")
def test_error_message_at_viz_canvas(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name).click() message = self.webdriver.find_element_by_xpath( "//div[@class='spinner-wrapper']//following::p[1]").text self.assertEqual( message, "There are no people that match this criteria. Please review and try building again. You can also reference our Audience Explorer FAQs.", "Incorrect message is getting displayed at Viz Canvas")
def test_barchart_icon_existing_audience(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name).click() bar_chart_Icon = self.webdriver.find_element_by_xpath("//button[contains(@ng-attr-title,'Bar Chart')]") bar_chart_title = bar_chart_Icon.get_attribute("title") print(bar_chart_title) ActionChains(self.webdriver).move_to_element(bar_chart_Icon).perform() self.assertEqual("Bar Chart", bar_chart_title)
def test_compare_icon_not_visible_when_on_infoviz(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name).click() compare_icon = self.webdriver.find_element_by_css_selector('.compare-trigger') if compare_icon.is_displayed(): print("Compare Icon is visible") else: print("Compare Icon is not visible")
def test_viz_icon_displayed(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name).click() Viz_Icon = self.webdriver.find_element_by_xpath( "//div[@class ='btn-group btn-chart-type']") if Viz_Icon.is_displayed(): print("Viz Icons are getting displayed") else: print("Viz Icons are not getting displayed")
def test_infoviz_default_view(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name).click() sleep(10) Info_Viz = self.webdriver.find_element_by_xpath("//div[contains(@id,'dataVisualizations')]") # info_Viz_Icon = self.webdriver.find_element_by_xpath("//button[contains(@ng-click,'$ctrl.selectChartType(1)')]") if Info_Viz.is_displayed(): print("Infoviz is getting displayed") else: print("Infoviz is not getting displayed")
def test_infoviz_icon_existing_audience(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver,self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) sleep(15) project_page.AudienceName(audience_name).click() info_Viz_Icon = self.webdriver.find_element_by_xpath("//button[contains(@ng-attr-title,'Audience Profile')]") info_Viz_title = info_Viz_Icon.get_attribute("title") print(info_Viz_title) ActionChains(self.webdriver).move_to_element(info_Viz_Icon).perform() self.assertEqual("Audience Profile", info_Viz_title)
def test_warning_icon_displaying_at_history_panel(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name).click() project_page.HistoryTab().click() sleep(10) icon = self.webdriver.find_element_by_xpath( "//div[@class='icon-wrapper']/div[1]") if icon.is_enabled(): print("Warning icon is present") else: print("Warning icon is not present")
def test_profile_insights_does_not_exist_for_NonUs(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_non_us"] audience_name = self.configAB[section]["non_us_aud_name1"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name ).click() try: info_Viz_Icon = self.webdriver.find_element_by_xpath("//button[contains(@ng-click,'$ctrl.selectChartType(1)')]") # info_Viz_title = info_Viz_Icon.get_attribute("title") info_Viz_Icon.is_displayed() print("info_Viz_title is enabled") except: print("info_Viz_title is disabled")
def test_error_message_at_history_panel(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver, self.config) project_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page.AudienceName(audience_name).click() project_page.HistoryTab().click() sleep(10) tag = self.webdriver.find_elements_by_xpath( "//audience-history-list/ul/li/audience-history-item/ul[1]/li[2]") message = tag[0].text self.assertEqual( message, "There are no people that match this criteria. Please re-visit criteria selections and try again.", "Incorrect message is getting displayed at History Panel")
def test_audience_history_tag_title(self): rand = my_random_string(3) home_page = HomePage(self.webdriver, self.config) home_page.createProject('Test Proj' + rand, 'NA - United States') sleep(10) project_page = ProjectPage(self.webdriver, self.config) audience_page = AudiencePage(self.webdriver, self.config) project_page.add_audience_button().click() audience_page.audience_name_textbox().send_keys('Test Audience') audience_page.add_dataSource('Purchase Behavior') self.webdriver.find_element_by_xpath( "//select[contains(@ng-model,'criteriaColumnSelector')]").click() self.webdriver.find_element_by_xpath( "//option[text()='Category']").click() self.webdriver.find_element_by_xpath( "//input[@placeholder='Begin typing to search...']").click() self.webdriver.find_element_by_xpath( "//li[contains(text(),'AIR FRESHENERS')]").click() criteria_createButton = self.webdriver.find_element_by_xpath( "//button[contains(@ng-click,'$ctrl.criteriaApply()') and (@class='red-btn')]" ) self.webdriver.execute_script("arguments[0].click();", criteria_createButton) # audience_page.criteria_createButton().click() sleep(5) audience_page.save_audience_button().click() sleep(10) project_page = ProjectPage(self.webdriver, self.config) project_page.AudienceName('Test Audience').click() project_page.HistoryTab().click() project_page.close_history().click() sleep(5) project_page.HistoryTab().click() list = self.webdriver.find_elements_by_xpath( "//audience-history-list/ul/li/audience-history-item/ul/li[1]") for item in list: assert item.text == 'Test Audience' project_page.project_menu_icon('Test Proj' + rand).click() project_page.project_delete_icon('Test Proj' + rand).click() project_page.AlertOkButton().click()
def test_filters_single_audience(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name1 = self.configAB[section]["audience_name1"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.AudienceName(audience_name1).click() project_page.bubble_Chart_Icon().click() sleep(5) project_page.view_filters_knob().click() project_page.select_datasource_visualization("Purchase Behavior") project_page.select_category("AIR FRESHENERS") # project_page.select_subcategory("Resources") audience_name = self.webdriver.find_element_by_xpath( "//div[@class='audience-name-label-normal']").text # print(audience_name) self.assertEqual(audience_name, audience_name1, "Comparison chart title incorrect or loading error")