Example #1
0
    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)
Example #4
0
    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)
Example #5
0
    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
Example #6
0
    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)
Example #7
0
    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)
Example #8
0
    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()
Example #11
0
    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")
Example #13
0
    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
Example #16
0
    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()
Example #21
0
    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")
Example #24
0
    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)
Example #25
0
    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")
Example #26
0
    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")
Example #28
0
    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")
Example #30
0
    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)