def test_unable_to_compare_audiences_of_different_projects(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name1 = self.configAB[section]["audience_name1"] audience_name5 = self.configAB[section]["audience_name5"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) sleep(5) project_page.CompareTrigger().click() project_page.AudienceCheckbox(audience_name1).click() self.webdriver.find_element_by_xpath( "//div[@class='dropdown-arrow']").click() self.webdriver.find_element_by_xpath( "//*[@placeholder='Search for projects']").send_keys( "DNT_Aud_Auto_Proj012") self.webdriver.find_element_by_xpath( "//span[text()='DNT_Aud_Auto_Proj012']").click() sleep(15) project_page.CompareTrigger().click() project_page.AudienceCheckbox(audience_name5).click() compare = self.webdriver.find_element_by_xpath( "//text()[contains(.,'Compare')]/ancestor::div[1]") if compare.is_selected(): print("Compare text is enabled") else: print("Compare text is disabled")
def test_audience_compare_history_tab_disable(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name1 = self.configAB[section]["audience_name1"] audience_name2 = self.configAB[section]["audience_name2"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() project_page.AudienceCheckbox(audience_name1).click() project_page.AudienceCheckbox(audience_name2).click() sleep(8) self.webdriver.find_element_by_xpath("//div[text()='Compare']").click() sleep(8) audiences_name = (WebDriverWait(self.webdriver, 50).until( EC.visibility_of_element_located( (By.CSS_SELECTOR, ".bar-chart-key-container.ng-scope")))).text sleep(5) try: project_page.HistoryTab().click() history_tab_not_found = False except: history_tab_not_found = True assert history_tab_not_found
def test_audience_compare_button_enable(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name1 = self.configAB[section]["audience_name1"] audience_name2 = self.configAB[section]["audience_name2"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() project_page.AudienceCheckbox(audience_name1).click() project_page.AudienceCheckbox(audience_name2).click() sleep(10) project_page.compare_button().click() sleep(10) # AQA-458: Check all the audiences selected for comparison appears at Viz Canvas aud_names = (WebDriverWait(self.webdriver, 50).until( EC.visibility_of_element_located( (By.XPATH, "//div[@class='bar-chart-key-container ng-scope']")))).text audiences_selected = audience_name1 + " " + audience_name2 self.assertEqual( aud_names, audiences_selected, "audiences selected for comparison didn't appear at Viz Canvas")
def test_filters_on_audience_compare(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name1 = self.configAB[section]["audience_name1"] audience_name2 = self.configAB[section]["audience_name2"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() sleep(5) project_page.AudienceCheckbox(audience_name1).click() project_page.AudienceCheckbox(audience_name2).click() sleep(10) project_page.compare_button().click() sleep(10) project_page.view_filters_knob().click() project_page.select_datasource_visualization("Advanced Audience Data") project_page.select_category("Apparel") project_page.select_subcategory("Footwear") audiences_name = self.webdriver.find_element_by_css_selector( ".bar-chart-key-container.ng-scope").text # print(audiences_name) chart_title = audience_name1 + " " + audience_name2 self.assertEqual(audiences_name, chart_title, "Comparison chart title incorrect or loading error")
def test_download_multiple_existing_Audience(self): section = self.__class__.__name__ project_name = self.configAB["DownloadMultipleAudience"][ "project_name"] audience_name1 = self.configAB["DownloadMultipleAudience"][ "audience_name1"] audience_name2 = self.configAB["DownloadMultipleAudience"][ "audience_name2"] # Delete existing file in workspace path = self.workspace + "\\" + project_name + " - Audience Compare Export*.xlsx" print(path) print(glob.glob(path)) for file in glob.glob(path): os.remove(file) home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) # Download Audience project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() project_page.AudienceCheckbox(audience_name1).click() project_page.AudienceCheckbox(audience_name2).click() project_page.download_button().click() sleep(30) path1 = self.workspace + "\\" + project_name + " - Audience Compare Export.xlsx" check = os.path.exists(path1) self.assertEqual(check, True, "Audience download failed") for file in glob.glob(path1): excel_sheet = xlrd.open_workbook(file) sheet1 = excel_sheet.sheet_by_index(0) row = sheet1.row_slice(0) excel_header = row[0].value sheet = excel_sheet.sheet_by_index(0) Cols = "" for i in range(sheet1.ncols): Cols = Cols + str(sheet.cell_value(3, i)) row_count = sheet.nrows print(Cols) self.assertEqual( excel_header, "Location Data for \"DNT_Auto_Aud02\" vs. \"DNT_Auto_Aud03\"", "Column header not matching")
def test_compare_icon_disabled_for_audience_resultingin_zero_results(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) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() try: project_page.AudienceCheckbox(audience_name).click() print("Audience checkbox is enabled") except: print( "There are no people that match this criteria Please review and try building again.So, Audience checkbox is disabled" )
def test_compare_icon_disabled_for_technically_build_error_audiences(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) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() try: project_page.AudienceCheckbox(audience_name).click() print("Audience checkbox is enabled") except: print( "We are experiencing technical difficulties building this audience.So, Audience checkbox is disabled" )
def test_compare_icon_disabled_for_saved_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) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() try: project_page.AudienceCheckbox(audience_name).click() print("Audience checkbox is enabled") except: print( "This audience has not been built.So, Audience checkbox is disabled" )
def test_multiple_audience_compare_button_enable(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name1 = self.configAB[section]["audience_name1"] audience_name2 = self.configAB[section]["audience_name2"] audience_name3 = self.configAB[section]["audience_name3"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() project_page.AudienceCheckbox(audience_name1).click() project_page.AudienceCheckbox(audience_name2).click() project_page.AudienceCheckbox(audience_name3).click() sleep(10) project_page.compare_button().click() sleep(10)
def test_compare_icon_disabled_for_audience_not_meeting_min_threshold( 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) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() try: project_page.AudienceCheckbox(audience_name).click() print("Audience checkbox is enabled") except: print( "This audience is 18% of the minimum audience size Please review and try building again.So, Audience checkbox is disabled" )
def test_compare_chart_percent(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name1 = self.configAB[section]["audience_name1"] audience_name2 = self.configAB[section]["audience_name2"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() project_page.AudienceCheckbox(audience_name1).click() project_page.AudienceCheckbox(audience_name2).click() sleep(10) project_page.compare_button().click() sleep(10) unit = self.webdriver.find_element_by_xpath( "//div[@class='x-axis']/div[12]/span").text self.assertEqual(unit, "%", "X axis index values are inaccurate")
def test_comparebtn_disabled2(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name = self.configAB[section]["audience_name1"] data_source_name = self.configAB[section]["data_source_name"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() # project_page.DataSource(data_source_name).click() project_page.AudienceCheckbox(audience_name).click() check = "False" try: self.webdriver.find_element_by_xpath( "//div[contains(@class,'compare-btn-disabled')]") except Exception as e: check = "True" self.assertEqual(check, "False", "Compare button is disabled")
def test_audience_checkbox_disable_after_selecting_third_audience(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name1 = self.configAB[section]["audience_name1"] audience_name2 = self.configAB[section]["audience_name2"] audience_name3 = self.configAB[section]["audience_name3"] audience_name4 = self.configAB[section]["audience_name4"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() project_page.AudienceCheckbox(audience_name1).click() project_page.AudienceCheckbox(audience_name2).click() project_page.AudienceCheckbox(audience_name3).click() sleep(10) check = (self.webdriver.find_element_by_xpath( "//div[contains(text(),'" + audience_name4 + "')]//parent::div//parent::div")).get_attribute('class') self.assertEqual( check, "audience-panel native-audience disabled", "Audience checkbox disable functionality not working.")
def test_data_source_visualization(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name1 = self.configAB[section]["audience_name1"] audience_name2 = self.configAB[section]["audience_name2"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() project_page.AudienceCheckbox(audience_name1).click() project_page.AudienceCheckbox(audience_name2).click() sleep(10) project_page.compare_button().click() sleep(10) project_page.view_filters_knob().click() try: project_page.select_datasource_visualization("Browsing Behavior") project_page.select_datasource_visualization("Purchase Behavior") project_page.select_datasource_visualization("Location Data") except: pass
def test_Clear_Selected_button(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name1 = self.configAB[section]["audience_name1"] audience_name2 = self.configAB[section]["audience_name2"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.CompareTrigger().click() project_page.AudienceCheckbox(audience_name1).click() project_page.AudienceCheckbox(audience_name2).click() sleep(10) project_page.compare_button().click() sleep(10) check = self.webdriver.find_element_by_css_selector( ".clear-button").is_displayed() project_page.ClearSelectedButton().click() check = self.webdriver.find_element_by_css_selector( ".clear-button").is_displayed() self.assertEqual(check, False, "Clear button is disabled")