Beispiel #1
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_create_audience(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 Creation
            new_project_name = project_name + '_' + link
            print(new_project_name)
            proj_page.createProject(new_project_name, link)
            sleep(10)
            #Audience Creation
            proj_page.add_audience_button().click()
            sleep(5)
            audience_page.audience_name_textbox().send_keys('Any Travel')
            audience_page.add_dataSource('Advanced Audience Data')
            source = self.webdriver.find_element_by_xpath(
                "//div[contains(@class,'header-label ng-binding ui-draggable-handle') and contains(text(),'Advanced Audience Data Criteria')]"
            )
            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_advanced_audience_data_criteria(
                'Purchase History', 'Travel', 'Travel', 'Any  Air Travel')
            audience_page.add_criteria_plusicon().click()
            audience_page.create_advanced_audience_data_criteria(
                'Affinity Audiences', 'Travel', 'Travel', 'Any Travel')
            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)
            # 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)
            new_project_name = project_name
Beispiel #3
0
    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()
Beispiel #4
0
    def test_project_searchable_admin_page_export(self):
        project_name = self.configAB["check_admin_import"]["project_name"]
        project_objective = self.configAB["check_admin_import"]["objective"]
        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)
        project_page.project_menu_icon(project_name).click()
        home_page.project_edit_icon(project_name).click()
        project_page.AddObjective().clear()
        sleep(3)
        audience_page.icon_greentick_objective().click()
        sleep(5)
        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.cog_button().click()
        sleep(10)
        home_page.chk_admin_audience_setting().click()
        sleep(5)
        home_page.drp_admin_project().click()
        sleep(10)
        self.webdriver.find_element_by_xpath("//option[text()='" +
                                             project_name + "']").click()
        home_page.drp_admin_project().click()
        self.webdriver.switch_to_default_content()
        home_page.lbl_Audience_Explorer_omni().click()
        iframe = self.webdriver.find_elements_by_tag_name('iframe')[0]
        self.webdriver.switch_to.frame(iframe)
        sleep(10)
        home_page.searchProjects(project_name)
        project_page.project_menu_icon(project_name).click()
        home_page.project_edit_icon(project_name).click()
        project_page.AddObjective().send_keys(project_objective)
        sleep(5)
        audience_page.icon_greentick_objective().click()
        sleep(5)
        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.cog_button().click()
        sleep(10)
        home_page.chk_admin_audience_setting().click()
        sleep(5)
        home_page.drp_admin_project().click()
        sleep(10)
        self.webdriver.find_element_by_xpath("//option[text()='" +
                                             project_name + "']").click()
        home_page.drp_admin_project().click()
    def test_create_other_audiences(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)
            #Audience Creation
            proj_page.add_audience_button().click()
            sleep(5)
            audience_page.audience_name_textbox().send_keys('Beauty')
            audience_page.add_dataSource('Advanced Audience Data')
            source = self.webdriver.find_element_by_xpath(
                "//div[contains(@class,'header-label ng-binding ui-draggable-handle') and contains(text(),'Advanced Audience Data Criteria')]"
            )
            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_advanced_audience_data_criteria(
                'In-Market Audiences', 'Beauty and Wellness', 'Personal Care',
                'Cosmetics')
            audience_page.add_criteria_plusicon().click()
            audience_page.create_advanced_audience_data_criteria(
                'In-Market Audiences', 'Beauty and Wellness', 'Personal Care',
                'Hair Care')
            # audience_page.add_criteria_plusicon().click()
            # audience_page.create_advanced_audience_data_criteria('Affinity Audiences', 'Lifestyle and Hobbies', 'Literature', 'Family Literature (Fiction)')
            # audience_page.add_criteria_plusicon().click()
            # audience_page.create_advanced_audience_data_criteria('Affinity Audiences', 'Lifestyle and Hobbies', 'Literature', 'Family Literature (Non-Fiction)')

            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()

            # If you have 3 audience criteria's
            # sleep(5)
            # self.webdriver.find_element_by_xpath("//div[contains(@class ,'text ng-binding') and contains(@ng-bind,'i.value')]//following::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()

            # If you have 4 audience criteria's
            # sleep(5)
            # self.webdriver.find_element_by_xpath("//div[contains(@class ,'text ng-binding') and contains(@ng-bind,'i.value')]//following::div[contains(@class ,'text ng-binding') and contains(@ng-bind,'i.value')]//following::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()
            # third_drp_value = self.webdriver.find_element_by_xpath("//div[contains(@class ,'ng-binding ng-scope') and contains(text(),'OR')]")
            # self.webdriver.execute_script("arguments[0].click();", third_drp_value)

            audience_page.save_and_create_button().click()
            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)
            new_project_name = project_name