def test_html_capabilities_project_Search(self):
        new_project_name = self.configAB["html_capabilities_project_Search"]["project_name"]
        data_env         = self.configAB["html_capabilities_project_Search"]["data_env"]
        string           = my_random_string(3)
        for project in new_project_name.split(";"):
            proj = project + string
            home_page = HomePage(self.webdriver, self.config)
            proj_page = ProjectPage(self.webdriver, self.config)

            projectName = home_page.createProject(proj, data_env)

            self.assertEqual(projectName, proj, "Project with html tags not created")
            # sleep(5)
            # self.webdriver.refresh()
            # sleep(5)

            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)

            home_page.searchProjects(proj)
            sleep(10)
            proj_page.deleteProject(proj)
Ejemplo n.º 2
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)
Ejemplo n.º 3
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)
Ejemplo n.º 4
0
    def test_get_individuals(self):
        project_name = self.configAB["Conceptual"]["project_name"]
        today = datetime.today().strftime('%m%d%y')
        home_page = HomePage(self.webdriver, self.config)
        home_page.searchProjects(project_name)
        sleep(10)
        aud_name = []
        individual_count = []
        aud_list = self.webdriver.find_elements_by_xpath(
            "//div[contains(@class ,'audience-title')]")
        for aud in aud_list:
            name = str(aud.text)
            aud_name.append(name)

        aud_list = self.webdriver.find_elements_by_xpath(
            "//div[contains(@class ,'audience-title')]/following::div[@class='audience-info-item'][1]/div"
        )
        for aud in aud_list:
            count = str(aud.text)
            individual_count.append(count)

        df = pd.DataFrame()
        df['aud_names'] = aud_name
        df['individual_count'] = individual_count
        print(df)
Ejemplo n.º 5
0
    def test_save_and_create_all_aud(self):
        # project_name = self.configAB["Conceptual"]["project_name"]

        home_page = HomePage(self.webdriver, self.config)
        home_page.searchProjects('Lotame_Switzerland_30-08-2019')
        project_page = ProjectPage(self.webdriver, self.config)
        audience_page = AudiencePage(self.webdriver, self.config)
        sleep(5)
        aud_name_list = []
        aud_list = WebDriverWait(self.webdriver, 100).until(
            EC.presence_of_all_elements_located(
                (By.XPATH, "//div[contains(@class ,'audience-title')]")))
        for aud in aud_list:
            audience_name = str(aud.text)
            aud_name_list.append(audience_name)

        for aud_name in aud_name_list:
            try:
                sleep(5)
                project_page.audience_menu_icon(aud_name).click()
                project_page.audienceEditIcon(aud_name)
            except Exception as e:
                print(aud_name, e)
                continue
            try:
                sleep(5)
                audience_page.save_and_create_button().click()
            except Exception as e:
                print(aud_name, e)
                audience_page.aud_back_arrow().click()
Ejemplo n.º 6
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")
Ejemplo n.º 7
0
    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_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")
Ejemplo n.º 9
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_compare_trigger_disabled(self):
        new_project_name = self.configAB["CreateProject"]["new_project_name"]
        data_env = self.configAB["CreateProject"]["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)
        proj_page.createProject(new_project_name, data_env)

        element = WebDriverWait(self.webdriver, 50).until(
            EC.visibility_of_element_located(
                (By.CSS_SELECTOR, ".compare-trigger")))
        trigger = element.get_attribute("class")

        tooltip = WebDriverWait(self.webdriver, 50).until(
            EC.visibility_of_element_located(
                (By.XPATH, "//abbr"))).get_attribute("title")
        self.assertEqual(trigger, "compare-trigger disabled",
                         "Compare trigger is not disabled")
        self.assertEqual(
            tooltip,
            "Compare feature available when you have at least two audiences.",
            "Compare trigger tooltip incorrect")
        proj_page.deleteProject(new_project_name)
    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_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_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_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)
Ejemplo n.º 15
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
    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")
Ejemplo n.º 17
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_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()
Ejemplo n.º 19
0
    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()
Ejemplo n.º 20
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)
Ejemplo n.º 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)
Ejemplo n.º 22
0
    def test_infoviz_getting_displayed_after_editing(self):
        section = self.__class__.__name__
        project_name = self.configAB[section]["project_name"]
        audience_name = self.configAB[section]["audience_name"]
        new_audience_name = self.configAB[section]["new_audience_name"]

        home_page = HomePage(self.webdriver, self.config)
        project_page = ProjectPage(self.webdriver, self.config)
        audience_page = AudiencePage(self.webdriver, self.config)

        home_page.searchProjects(project_name)
        project_page.AudienceName(audience_name).click()
        project_page.audience_menu_icon(audience_name).click()
        project_page.audienceEditIcon(audience_name)
        audience_page.audience_rename(new_audience_name)
        sleep(10)
        Info_Viz = self.webdriver.find_element_by_xpath("//div[contains(@id,'dataVisualizations')]")
        # info_Viz_Icon = self.webdriver.find_element_by_xpath("//button[contains(@ng-click,'$ctrl.selectChartType(1)')]")
        if Info_Viz.is_displayed():
            print("Infoviz is getting displayed")
        else:
            print("Infoviz is not getting displayed")

        # renaming to original one
        project_page.AudienceName(new_audience_name).click()
        project_page.audience_menu_icon(new_audience_name).click()
        project_page.audienceEditIcon(new_audience_name)
        audience_page.audience_rename(audience_name)
    def test_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_save_and_create_disable(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_name = 'Test Aud'+my_random_string(3)
        audience_page = AudiencePage(self.webdriver, self.config)
        audience_page.audience_name_textbox().send_keys(audience_name)
        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)
        sleep(5)
        audience_page.save_and_create_button().click()
        sleep(5)
        proj_page.audience_menu_icon(audience_name).click()
        proj_page.audienceEditIcon(audience_name)
        sleep(30)
        status = audience_page.save_and_create_button().get_attribute('disabled')
        self.assertEqual(status,'true','save and create disable feature not working')
        self.webdriver.find_element_by_css_selector(".back").click()

        proj_page.audience_menu_icon(audience_name).click()
        proj_page.audience_delete_icon(audience_name).click()
        proj_page.AlertOkButton().click()
    def test_apply_parenthesis_on_multiple_datasources(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.audience_menu_icon(audience_name).click()
        project_page.audienceEditIcon(audience_name)
        sleep(15)
        audience_page = AudiencePage(self.webdriver, self.config)
        WebDriverWait(self.webdriver, 50).until(
            EC.presence_of_element_located(
                (By.XPATH, "//div[text()='Demographic Data']"))).click()
        WebDriverWait(self.webdriver, 50).until(
            EC.presence_of_element_located(
                (By.XPATH, "//div[text()='Location Data']"))).click()
        audience_page.click_parenthesis_icon()
        self.webdriver.find_element_by_xpath(
            "//div[@class='paren ng-scope']").click()
        sleep(10)
        self.webdriver.find_element_by_xpath(
            "//div[@class='paren ng-scope selected']/img").click()
    def test_apply_parenthesis_on_single_datasource(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.audience_menu_icon(audience_name).click()
        project_page.audienceEditIcon(audience_name)

        audience_page = AudiencePage(self.webdriver, self.config)
        WebDriverWait(self.webdriver, 50).until(
            EC.presence_of_element_located(
                (By.XPATH, "//div[text()='Age between 18, 36']"))).click()
        self.webdriver.find_element_by_xpath(
            "//div[text()='Income Level in Greater than $124,999']").click()
        audience_page.click_parenthesis_icon()
        self.webdriver.find_element_by_xpath(
            "//div[@class='paren ng-scope paren-criteria']").click()
        sleep(10)
        self.webdriver.find_element_by_xpath(
            "//div[@class='paren ng-scope paren-criteria selected']/img"
        ).click()
Ejemplo n.º 27
0
    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()
Ejemplo n.º 28
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()
Ejemplo n.º 29
0
    def test_barchart_icon_from_landing_page(self):
        section = self.__class__.__name__
        audience_name = self.configAB[section]["audience_name"]

        home_page = HomePage(self.webdriver, self.config)
        home_page.searchProjects(audience_name)

        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)
Ejemplo n.º 30
0
    def test_infoviz_icon_from_landing_page(self):
        section = self.__class__.__name__
        audience_name = self.configAB[section]["audience_name"]

        home_page  = HomePage(self.webdriver,self.config)
        home_page.searchProjects(audience_name)

        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)