def test_purchase_behaviour_subcategory(self): project_name = self.configAB["purchase_behaviour"]["project_name"] ds_type = self.configAB["purchase_behaviour"]["ds_type"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) audience_page = AudiencePage(self.webdriver, self.config) sleep(5) project_page.add_audience_button().click() audience_page.audience_name_textbox().send_keys('Test Audience') audience_page.add_dataSource(ds_type) self.webdriver.find_element_by_xpath( "//select[contains(@ng-model,'criteriaColumnSelector')]").click() self.webdriver.find_element_by_xpath( "//option[text()='Subcategory']").click() sleep(5) self.webdriver.find_element_by_xpath("//an-typeahead").click() sleep(5) try: self.webdriver.find_elements_by_xpath("//an-typeahead/div/ul/li") audience_page.aud_back_arrow().click() except NoSuchElementException: assert False
def test_edit_existing_project(self): project_name = self.configAB["EditProject"]["project_name"] new_project_name = self.configAB["EditProject"]["new_project_name"] home_page = HomePage(self.webdriver, self.config) proj_page = ProjectPage(self.webdriver, self.config) home_page.searchProjects(project_name) proj_name = home_page.edit_project_name(project_name,new_project_name) self.assertEqual(proj_name,new_project_name,"Edit Project failed") self.webdriver.back() self.webdriver.switch_to_default_content() proj_page.lbl_Audience_Explorer_omni().click() sleep(20) # WebDriverWait(self.webdriver, 100).until(EC.visibility_of_element_located((By.XPATH, "//span[text()='Audience Explorer (Omni)']"))).click() # sleep(5) iframe = self.webdriver.find_elements_by_tag_name('iframe')[0] self.webdriver.switch_to.frame(iframe) projectName = home_page.searchProjects(new_project_name) self.assertEqual(new_project_name, projectName, "Project Search failed") proj_name = home_page.edit_project_name(new_project_name, project_name) self.assertEqual(proj_name, project_name, "Edit Existing Project failed")
def test_create_private_project_on_project_page(self): project_name = self.configAB["CreatePrivateProject"]["project_name"] objective = self.configAB["CreatePrivateProject"]["objective"] data_env = self.configAB["CreatePrivateProject"]["data_env"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) string = my_random_string(3) new_project_name = project_name + string proj_page = ProjectPage(self.webdriver,self.config) project_name = proj_page.createPrivateProject(new_project_name, objective, data_env) self.assertEqual(new_project_name,project_name,"Project creation failed") # self.webdriver.quit() # self.webdriver = webdriver.Chrome() # # self.webdriver.maximize_window() # self.webdriver.get(self.omni_url) # # login_page = LoginPage(self.webdriver, self.config) # login_page.login(shared_userid, shared_pwd) # # sleep(5) # home_page = HomePage(self.webdriver, self.config) # home_page.openSideBar() # WebDriverWait(self.webdriver, 100).until( # EC.visibility_of_element_located((By.XPATH, "//span[text()='Audience Explorer (Omni)']"))).click() # sleep(5) # iframe = self.webdriver.find_elements_by_tag_name('iframe')[0] # self.webdriver.switch_to_frame(iframe) # # # home_page = HomePage(self.webdriver, self.config) # home_page.searchProjects(new_project_name) proj_page.deleteProject(new_project_name)
def test_verify_numbers(self): project_name = self.configAB["individual_count"]["project_name"] audience_name = self.configAB["individual_count"]["audience_name"] home_page = HomePage(self.webdriver, self.config) audience_page = AudiencePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) sleep(10) project_page.selectAudiences(audience_name) sleep(5) lbl_individual = audience_page.lbl_individuals(audience_name).text print("This is the value of individuals on the right " + lbl_individual) sleep(10) lbl_panelindividuals = audience_page.lbl_PanelIndividuals( audience_name).text print("This is the value of individuals on the left div " + lbl_panelindividuals) self.assertEqual(lbl_individual, lbl_panelindividuals) lbl_households = audience_page.lbl_household(audience_name).text print("This is the value of household on the right " + lbl_households) sleep(10) lbl_householdpanel = audience_page.lbl_PanelHousehold( audience_name).text print("This is the value of households on the left div " + lbl_householdpanel) self.assertEqual(lbl_households, lbl_householdpanel) lbl_device = audience_page.lbl_devices(audience_name).text print("This is the value of devices on the right " + lbl_device) sleep(10) lbl_devicepanel = audience_page.lbl_PanelDevice(audience_name).text print("This is the value of device on the left div " + lbl_devicepanel) self.assertEqual(lbl_device, lbl_devicepanel)
def test_purchase_behaviour_category(self): project_name = self.configAB["purchase_behaviour"]["project_name"] ds_type = self.configAB["purchase_behaviour"]["ds_type"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) audience_page = AudiencePage(self.webdriver, self.config) sleep(5) project_page.add_audience_button().click() audience_page.audience_name_textbox().send_keys('Test Audience') audience_page.add_dataSource(ds_type) self.webdriver.find_element_by_xpath( "//select[contains(@ng-model,'criteriaColumnSelector')]").click() self.webdriver.find_element_by_xpath( "//option[text()='Category']").click() sleep(5) try: 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() audience_page.aud_back_arrow().click() except NoSuchElementException: assert False
def test_create_purchase_data_audiences(self): proj_page = ProjectPage(self.webdriver, self.config) audience_page = AudiencePage(self.webdriver, self.config) home_page = HomePage(self.webdriver, self.config) home_page.searchProjects("Test_US_Automation") sleep(10) # Audience Creation using Advanced Audience Data proj_page.add_audience_button().click() sleep(5) audience_page.audience_name_textbox().send_keys('Purchase_Audience') audience_page.add_dataSource('Purchase Behavior') criteria_label = self.webdriver.find_element_by_xpath( "//div[contains(@class, 'header-label ng-binding ui-draggable-handle')]" ).text print(criteria_label) source = self.webdriver.find_element_by_xpath( "//div[contains(@class,'header-label ng-binding ui-draggable-handle') and contains(text(),'" + criteria_label + "')]") target = self.webdriver.find_element_by_xpath( "//div[contains(@class, 'criteria-panel-header') and contains(text(),'Define Your Audience')]" ) mouse = ActionChains(self.webdriver) mouse.drag_and_drop(source, target).perform() audience_page.create_purchase_data_criteria('Category', 'AIR FRESHENERS') # audience_page.add_criteria_plusicon().click() # audience_page.create_advanced_audience_data_criteria('In-Market Audiences', 'Beauty and Wellness', 'Personal Care', 'Hair Care') sleep(5) # self.webdriver.find_element_by_xpath("//div[contains(@class ,'text ng-binding') and contains(@ng-bind,'i.value')]").click() # sleep(5) # self.webdriver.find_element_by_xpath("//div[contains(@class ,'ng-binding ng-scope') and contains(text(),'OR')]").click() audience_page.save_and_create_button().click() sleep(10)
def test_create_demographic_data_audiences(self): proj_page = ProjectPage(self.webdriver, self.config) audience_page = AudiencePage(self.webdriver, self.config) home_page = HomePage(self.webdriver, self.config) home_page.searchProjects("Test_US_Automation") sleep(10) # Audience Creation using Advanced Audience Data proj_page.add_audience_button().click() sleep(5) audience_page.audience_name_textbox().send_keys('Demographic_Audience') audience_page.add_dataSource('Demographic Data') criteria_label = self.webdriver.find_element_by_xpath( "//div[contains(@class, 'header-label ng-binding ui-draggable-handle')]" ).text print(criteria_label) source = self.webdriver.find_element_by_xpath( "//div[contains(@class,'header-label ng-binding ui-draggable-handle') and contains(text(),'" + criteria_label + "')]") target = self.webdriver.find_element_by_xpath( "//div[contains(@class, 'criteria-panel-header') and contains(text(),'Define Your Audience')]" ) mouse = ActionChains(self.webdriver) mouse.drag_and_drop(source, target).perform() audience_page.create_demographic_data_criteria('Age') sleep(5) # audience_page.save_and_create_button().click() sleep(10)
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_create_SSOA_FB_or_IG_Lotm(self): country = self.configAB["Conceptual"]["country"] project_name = self.configAB["Conceptual"]["project_name"] ds_type = "Advanced Audience Data" home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) proj_page = ProjectPage(self.webdriver, self.config) proj_page.add_audience_button().click() audience_page = AudiencePage(self.webdriver, self.config) audience_page.add_dataSource(ds_type) audience_page.create_advanced_audience_data_criteria( 'Affinity Audiences', 'Digital Engagement', 'Social Media', 'Facebook') audience_page.add_dataSource(ds_type) audience_page.create_advanced_audience_data_criteria( 'Affinity Audiences', 'Digital Engagement', 'Social Media', 'Instagram') list = self.webdriver.find_elements_by_xpath( "//div[contains(@class,'criteria-oper')]/div[text()='AND']") list[1].click() self.webdriver.find_element_by_xpath("//div[text()='OR']").click() audience_page.audience_name_textbox().clear() audience_page.audience_name_textbox().send_keys(country + " SSOA - FB,IG - Lotm") sleep(5) audience_page.save_and_create_button().click()
def test_create_SSA_FB_or_IG_JS(self): country = self.configAB["Conceptual"]["country"] project_name = self.configAB["Conceptual"]["project_name"] ds_type = "Browsing Behavior" home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) proj_page = ProjectPage(self.webdriver, self.config) proj_page.add_audience_button().click() audience_page = AudiencePage(self.webdriver, self.config) audience_page.add_dataSource(ds_type) audience_page.create_browsing_behaviour_domain_names('facebook.com') audience_page.inner_criteria_plusIcon().click() audience_page.create_browsing_behaviour_domain_names('instagram.com') list = self.webdriver.find_elements_by_xpath( "//div[contains(@class,'criteria-oper')]/div[text()='AND']") list[1].click() self.webdriver.find_element_by_xpath("//div[text()='OR']").click() audience_page.audience_name_textbox().clear() audience_page.audience_name_textbox().send_keys(country + " SSOA - FB,IG - JS") sleep(10) audience_page.save_and_create_button().click()
def test_infoviz_getting_displayed(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() sleep(10) info_viz = self.webdriver.find_element_by_xpath("//div[contains(@id,'dataVisualizations')]") if info_viz.is_displayed(): print("Infoviz is getting displayed") else: print("Infoviz is not getting displayed") project_page.project_menu_icon('Test Proj' + rand).click() project_page.project_delete_icon('Test Proj' + rand).click() project_page.AlertOkButton().click()
def test_copy_audience_multiple_criteria_to_other_audience(self): section = self.__class__.__name__ project_name = self.configAB[section]["project_name"] audience_name_multiple_source = self.configAB[section][ "audience_name_multiple_source"] audience_name_multiple_dest = self.configAB[section][ "audience_name_multiple_dest"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) project_page.audience_menu_icon(audience_name_multiple_source).click() project_page.audienceEditIcon(audience_name_multiple_source) audience_page = AudiencePage(self.webdriver, self.config) audience_page.copy_multiple_audience_criteria_within_self() self.webdriver.find_element_by_xpath( "//div[@class='sources-panel']/div[1]").click() project_page.audience_menu_icon(audience_name_multiple_dest).click() project_page.audienceEditIcon(audience_name_multiple_dest) sleep(5) self.webdriver.find_element_by_xpath( "//div[text()='Insert Copied Criteria']").click() audience_page.delete_audience_criteria("Demographic Data") audience_page.delete_audience_criteria("Location Data")
def test_create_MSAA_IG_or(self): country = self.configAB["Conceptual"]["country"] project_name = self.configAB["Conceptual"]["project_name"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) proj_page = ProjectPage(self.webdriver, self.config) proj_page.add_audience_button().click() audience_page = AudiencePage(self.webdriver, self.config) audience_page.add_dataSource('Browsing Behavior') audience_page.create_browsing_behaviour_domain_names('instagram.com') sleep(5) audience_page.add_dataSource('Advanced Audience Data') audience_page.create_advanced_audience_data_criteria( 'Affinity Audiences', 'Digital Engagement', 'Social Media', 'Instagram') list = self.webdriver.find_elements_by_xpath( "//div[contains(@class,'criteria-oper-groups')]/div[text()='AND']") list[1].click() self.webdriver.find_element_by_xpath("//div[text()='OR']").click() audience_page.audience_name_textbox().clear() audience_page.audience_name_textbox().send_keys( country + " MSAA - IG - JS or Lotm") sleep(5) audience_page.save_and_create_button().click()
def test_create_SSOA_FB_and_IG_Lotm(self): country = self.configAB["Conceptual"]["country"] project_name = self.configAB["Conceptual"]["project_name"] ds_type = "Advanced Audience Data" home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) proj_page = ProjectPage(self.webdriver, self.config) proj_page.add_audience_button().click() audience_page = AudiencePage(self.webdriver, self.config) audience_page.add_dataSource(ds_type) audience_page.create_advanced_audience_data_criteria( 'Affinity Audiences', 'Digital Engagement', 'Social Media', 'Facebook') audience_page.add_dataSource(ds_type) audience_page.create_advanced_audience_data_criteria( 'Affinity Audiences', 'Digital Engagement', 'Social Media', 'Instagram') audience_page.audience_name_textbox().clear() audience_page.audience_name_textbox().send_keys( country + " SSAA - FB & IG - Lotm") sleep(5) audience_page.save_and_create_button().click()
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_purchase_behaviour_product_name(self): project_name = self.configAB["purchase_behaviour"]["project_name"] ds_type = self.configAB["purchase_behaviour"]["ds_type"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) project_page = ProjectPage(self.webdriver, self.config) audience_page = AudiencePage(self.webdriver, self.config) sleep(5) project_page.add_audience_button().click() audience_page.audience_name_textbox().send_keys('Test Audience') audience_page.add_dataSource(ds_type) self.webdriver.find_element_by_xpath( "//select[contains(@ng-model,'criteriaColumnSelector')]").click() self.webdriver.find_element_by_xpath( "//option[text()='Product Name']").click() sleep(5) self.webdriver.find_element_by_xpath("//an-typeahead").click() sleep(5) list = self.webdriver.find_elements_by_xpath( "//an-typeahead/div/ul/li") p_name = "" for i in list: product_name = i.text if "category" in product_name: p_name = product_name self.assertEqual(p_name, "", "Product names list contain category")
def test_create_project_objective_field(self): new_project_name = self.configAB["CreatePrivateProject"]["new_project_name"] data_env = self.configAB["CreatePrivateProject"]["data_env"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(new_project_name) string = my_random_string(3) new_project_name = new_project_name + string proj_page = ProjectPage(self.webdriver, self.config) length = proj_page.verify_objective_field(new_project_name, data_env) self.assertEqual(length, 120, "Objective field length limit incorrect")
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_ssa(self): country = self.configAB["Conceptual"]["country"] project_name = self.configAB["Conceptual"]["project_name"] ds_type = "Advanced Audience Data" home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) proj_page = ProjectPage(self.webdriver, self.config) proj_page.add_audience_button().click() audience_page = AudiencePage(self.webdriver, self.config) audience_page.add_dataSource(ds_type) audience_page.create_advanced_audience_data_criteria( 'In-Market Audiences', 'Automotive & Vehicles', 'Cars', 'TRUE') audience_page.audience_name_textbox().clear() audience_page.audience_name_textbox().send_keys( country + " SSA-Auto In Market-Lotm") sleep(5) audience_page.save_and_create_button().click() ############################################### proj_page.add_audience_button().click() audience_page = AudiencePage(self.webdriver, self.config) audience_page.add_dataSource(ds_type) audience_page.create_advanced_audience_data_criteria_multiple_attribute_value( 'In-Market Audiences', 'Automotive & Vehicles', 'Car Classifications', value=['Luxury SUV', 'Luxury Sedan']) audience_page.audience_name_textbox().clear() audience_page.audience_name_textbox().send_keys( country + " SSOA-Lux Auto In Market-Lotm") sleep(5) audience_page.save_and_create_button().click() ############################################### proj_page.add_audience_button().click() audience_page = AudiencePage(self.webdriver, self.config) audience_page.add_dataSource(ds_type) audience_page.create_advanced_audience_data_criteria_multiple_attribute_value( 'In-Market Audiences', 'Automotive & Vehicles', 'Car Classifications', value=['Luxury SUV', 'Luxury Sedan']) audience_page.add_dataSource(ds_type) audience_page.create_advanced_audience_data_criteria_multiple_attribute_value( 'Purchase History', 'Automotive & Vehicles', 'Car Classifications', value=['Luxury SUV', 'Luxury Sedan']) audience_page.audience_name_textbox().clear() audience_page.audience_name_textbox().send_keys( country + " SSAA-Lux Auto InMarket & Own-Lotm") sleep(5) audience_page.save_and_create_button().click()
def test_fetch_audience_data(self): project_name = self.configAB["Lotame_Viz"]["project_name"] path = os.path.join('testdata', 'sidebar.json') print("location:" + path) proj_page = ProjectPage(self.webdriver, self.config) audience_page = AudiencePage(self.webdriver, self.config) home_page = HomePage(self.webdriver, self.config) with open(path) as file: data = json.load(file) for item in range(len(data)): link = data[item]["link"] # Project selection new_project_name = project_name + '_' + link print(new_project_name) sleep(5) home_page.searchProjects(new_project_name) sleep(10) num_aud_panel = len(self.webdriver.find_elements_by_xpath("//div[@class = 'audiences-section']//audience-panel")) print(num_aud_panel) for i in range (1,num_aud_panel+1): audience_name = self.webdriver.find_element_by_xpath("(//div[@class = 'audience-title ng-binding'])[position()="+str(i)+"]").text individual_count = self.webdriver.find_element_by_xpath("(//div[@class = 'audiences-section']//audience-panel//span[@class = 'id-count ng-binding'])[position()= "+str(i)+"]").text household_count = self.webdriver.find_element_by_xpath("(//div[@class = 'audiences-section']//audience-panel//span[@class = 'hh-count ng-binding'])[position()= "+str(i)+"]").text device_count = self.webdriver.find_element_by_xpath("(//div[@class = 'audiences-section']//audience-panel//span[@class = 'device-count ng-binding'])[position()= "+str(i)+"]").text print(individual_count) file_path = os.path.abspath("Datafile.xlsx") print(file_path) rows = XLUtils.getRowCount(file_path, "aud_data") print(rows) converted_indi = audience_page.convert_str_to_number(individual_count) print(converted_indi) converted_house = audience_page.convert_str_to_number(household_count) print(converted_house) converted_device = audience_page.convert_str_to_number(device_count) print(converted_device) XLUtils.WriteData(file_path, "aud_data", rows + 1, 1, new_project_name) XLUtils.WriteData(file_path, "aud_data", rows + 1, 2, audience_name) #To get the number in human readable format for e.g 1000 to 1k # XLUtils.WriteData(file_path, "aud_data", rows+1, 3 , individual_count) # XLUtils.WriteData(file_path, "aud_data", rows+1, 4 , household_count) # XLUtils.WriteData(file_path, "aud_data", rows+1, 5 , device_count) #To get the number in long format for e.g 1k to 1000, 1M to 1000000 XLUtils.WriteData(file_path, "aud_data", rows + 1, 3, converted_indi) XLUtils.WriteData(file_path, "aud_data", rows + 1, 4, converted_house) XLUtils.WriteData(file_path, "aud_data", rows + 1, 5, converted_device) sleep(10) # Navigating to home screen self.webdriver.switch_to_default_content() home_page.lbl_Audience_Explorer_omni().click() sleep(10) iframe = self.webdriver.find_elements_by_tag_name('iframe')[0] self.webdriver.switch_to.frame(iframe)
def test_time_period_criteria(self): project_name = self.configAB["CreateAudience"]["project_name"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) proj_page = ProjectPage(self.webdriver, self.config) proj_page.add_audience_button().click() audience_page = AudiencePage(self.webdriver, self.config) time_period = audience_page.get_time_period().text self.assertEqual(time_period, "Q1 2020", "Default Time period incorrect") audience_page.click_edit_time_period().click() sleep(5) time_period_list = self.webdriver.find_element_by_xpath( "//div[text()='Select Time Period*']/following::select[contains(@ng-model,'selectedTimePeriodsNew')]/option[contains(@value,'object')]").text
def test_verify_agerange_starts_from_eighteen(self): project_name = self.configAB["CreateAudience"]["project_name"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name) proj_page = ProjectPage(self.webdriver, self.config) proj_page.add_audience_button().click() sleep(10) audience_page = AudiencePage(self.webdriver, self.config) audience_page.add_dataSource("Demographic Data") sleep(5) audience_page.filter_col_dropdown().click() audience_page.webdriver.find_element_by_xpath("//option[text()='Age']").click() age_range = self.webdriver.find_element_by_xpath("//div[@class='criteria-edit-label slider-value-label']").text self.assertEqual(age_range, "Between 18 and 100", "Age range incorrect for demographic data")
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_bubblechart_icon_from_project_workspace(self): section = self.__class__.__name__ project_name2 = self.configAB[section]["project_name2"] audience_name = self.configAB[section]["audience_name"] home_page = HomePage(self.webdriver, self.config) home_page.searchProjects(project_name2) project_page = ProjectPage(self.webdriver, self.config) project_page.searchProjects(audience_name) bubble_chart_Icon = self.webdriver.find_element_by_xpath("//button[contains(@ng-attr-title,'Bubble Chart')]") bubble_chart_title = bubble_chart_Icon.get_attribute("title") print(bubble_chart_title) ActionChains(self.webdriver).move_to_element(bubble_chart_Icon).perform() self.assertEqual("Bubble Chart", bubble_chart_title)
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_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, "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_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)