Esempio n. 1
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_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_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_copy_audience_multiple_criteria_to_other_audience(self):
        section = self.__class__.__name__
        project_name = self.configAB[section]["project_name"]
        audience_name_multiple_source = self.configAB[section][
            "audience_name_multiple_source"]
        audience_name_multiple_dest = self.configAB[section][
            "audience_name_multiple_dest"]

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

        project_page = ProjectPage(self.webdriver, self.config)
        project_page.audience_menu_icon(audience_name_multiple_source).click()
        project_page.audienceEditIcon(audience_name_multiple_source)

        audience_page = AudiencePage(self.webdriver, self.config)
        audience_page.copy_multiple_audience_criteria_within_self()

        self.webdriver.find_element_by_xpath(
            "//div[@class='sources-panel']/div[1]").click()

        project_page.audience_menu_icon(audience_name_multiple_dest).click()
        project_page.audienceEditIcon(audience_name_multiple_dest)
        sleep(5)

        self.webdriver.find_element_by_xpath(
            "//div[text()='Insert Copied Criteria']").click()
        audience_page.delete_audience_criteria("Demographic Data")
        audience_page.delete_audience_criteria("Location Data")
    def test_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()
Esempio n. 6
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()
    def test_audience_timestamp(self):
        project_name = self.configAB["audience_timestamp"]["project_name"]
        audience_name = self.configAB["audience_timestamp"]["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(10)
        timestamp = self.webdriver.find_element_by_xpath("//*[@class='criteria-panel']/div[5]").text
        # print(timestamp)
        assert timestamp.startswith("Last Created")
Esempio n. 8
0
    def test_consumer_journey(self):
        # project_name = self.configAB["Conceptual"]["project_name"]

        home_page = HomePage(self.webdriver, self.config)
        home_page.searchProjects('Argentina 07-08')
        project_page = ProjectPage(self.webdriver, self.config)
        aud_list = self.webdriver.find_elements_by_xpath(
            "//div[contains(@class ,'audience-title')]")

        for aud in aud_list:
            audience_name = str(aud.text)
            try:
                project_page.audience_menu_icon(audience_name).click()
                project_page.audience_share_icon(audience_name).click()
                project_page.ConsumerJourney(audience_name)
            except Exception as e:
                print(audience_name, e)
    def test_copy_audience_single_criteria(self):
        section = self.__class__.__name__
        project_name = self.configAB[section]["project_name"]
        audience_name_single = self.configAB[section][
            "audience_name_single_source"]

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

        home_page.searchProjects(project_name)
        project_page.audience_menu_icon(audience_name_single).click()
        project_page.audienceEditIcon(audience_name_single)

        audience_page = AudiencePage(self.webdriver, self.config)
        audience_page.copy_audience_criteria_within_self("Demographic Data")
        self.webdriver.find_element_by_xpath(
            "//div[text()='Insert Copied Criteria']").click()
        audience_page.delete_audience_criteria("Demographic Data")
Esempio n. 10
0
    def test_download_single_existing_audience(self):
        section = self.__class__.__name__
        project_name = self.configAB["DownloadAudience"]["project_name"]
        audience_name = self.configAB["DownloadAudience"]["audience_name"]
        # Delete existing file in workspace
        path = self.workspace + "\\" + project_name + " - " + audience_name + ".xlsx"
        print(path)
        print(glob.glob(path))
        for file in glob.glob(path):
            os.remove(file)

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

        # Download Audience
        project_page = ProjectPage(self.webdriver, self.config)
        project_page.audience_menu_icon(audience_name).click()
        project_page.audience_download_icon(audience_name).click()
        project_page.audience_data(audience_name).click()

        sleep(30)
        path1 = self.workspace + "\\" + project_name + " - " + audience_name + ".xlsx"
        check = os.path.exists(path1)

        self.assertEqual(check, True, "Audience download failed")

        for file in glob.glob(path1):
            excel_sheet = xlrd.open_workbook(file)
            sheet1 = excel_sheet.sheet_by_index(0)

            row = sheet1.row_slice(0)
            excel_header = row[0].value
            sheet = excel_sheet.sheet_by_index(0)
            Cols = ""
            for i in range(sheet1.ncols):
                Cols = Cols + str(sheet.cell_value(1, i))

            print(excel_header)
            row_count = sheet.nrows
            print(Cols)

            self.assertEqual(excel_header,
                             "Location Data for \"DNT_Auto_Aud02\"",
                             "Column header not matching")
    def test_created_audience_timestamp(self):
        project_name = self.configAB["audience_timestamp"]["project_name"]
        audience_name = self.configAB["audience_timestamp"]["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)
        project_page.audience_menu_icon(audience_name).click()
        project_page.audienceEditIcon(audience_name)
        sleep(10)
        actual_timestamp = self.webdriver.find_element_by_xpath("//div[contains(@class,'edit-when ng-scope')]").text
        # print("This is the actual timestamp " + actual_timestamp)
        date_time = audience_page.lbl_date_time().text
        user = audience_page.lbl_User().text
        data_env = audience_page.lbl_data_env().text
        expected_timestamp = "Last Created" + " " + date_time + " By " + user + " " + data_env
        assert actual_timestamp.startswith("Last Created")
        self.assertEqual(actual_timestamp, expected_timestamp)
Esempio n. 12
0
    def test_tradedesk_rate_card(self):
        section = self.__class__.__name__
        project_name = self.configAB["cpm_rate"]["project_name"]
        audience_name = self.configAB["cpm_rate"]["audience_name"]
        #Click on Tradedesk
        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.audience_share_icon(audience_name).click()
        self.webdriver.find_element_by_xpath(
            "//*[text()='" + audience_name +
            "']//following::div[contains(@class ,distribute-dd-menu)]/div[contains(text(),'Trade Desk')]"
        ).click()

        rate = WebDriverWait(self.webdriver, 50).until(
            EC.visibility_of_element_located(
                (By.XPATH,
                 "//table[@class='rate-card-table']/tbody/tr/th/span"))).text
        self.assertEqual(rate, "$1.05", "Trade desk Ratecard Incorrect")
    def test_distribution_disable_feature(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.audience_share_icon(audience_name).click()
        ele = self.webdriver.find_element_by_xpath(
            "//*[text()='" + audience_name +
            "']//following::div[contains(@class ,distribute-dd-menu)]/div[contains(text(),'Consumer Journey')]"
        )
        text = ele.get_attribute('class')
        print(text)

        CI_text = self.webdriver.find_element_by_xpath(
            "//*[text()='" + audience_name +
            "']//following::div[contains(@class ,distribute-dd-menu)]/div[contains(text(),'Content Inspiration')]"
        ).get_attribute('class')
        print(CI_text)
Esempio n. 14
0
    def test_content_inspiration(self):
        project_name = self.configAB["Conceptual"]["project_name"]

        home_page = HomePage(self.webdriver, self.config)
        home_page.searchProjects(project_name)
        project_page = ProjectPage(self.webdriver, self.config)
        aud_list = self.webdriver.find_elements_by_xpath(
            "//div[contains(@class ,'audience-title')]")

        for aud in aud_list:
            audience_name = str(aud.text)
            try:
                project_page.audience_menu_icon(audience_name).click()
                project_page.audience_share_icon(audience_name).click()
                project_page.ContentInspiration(audience_name)
            except Exception as e:
                print(audience_name, e)

        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)
Esempio n. 15
0
    def test_verify_activation_rate_and_CPM_value(self):
        section = self.__class__.__name__
        project_name = self.configAB["cpm_rate"]["project_name"]
        audience_name = self.configAB["cpm_rate"]["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.audience_menu_icon(audience_name).click()
        project_page.audience_share_icon(audience_name).click()
        self.webdriver.find_element_by_xpath(
            "//*[text()='" + audience_name +
            "']//following::div[contains(@class ,distribute-dd-menu)]/div[contains(text(),'Trade Desk')]"
        ).click()
        CPM_rate = WebDriverWait(self.webdriver, 50).until(
            EC.visibility_of_element_located(
                (By.XPATH,
                 "//table[@class='rate-card-table']/tbody/tr/th/span"))).text
        print(CPM_rate)
        self.webdriver.find_element_by_xpath(
            "//button[contains(@ng-click,'btn.onClick()')]//following::span[text()='Cancel']"
        ).click()

        project_page.audience_menu_icon(audience_name).click()
        project_page.audienceEditIcon(audience_name)
        activation_rate = WebDriverWait(self.webdriver, 50).until(
            EC.visibility_of_element_located(
                (By.XPATH, "//span[contains(@class,'cost')]"))).text
        print(activation_rate)

        self.assertEqual(activation_rate, CPM_rate,
                         'Activation rate & CPM rate is not same')
        audience_page.aud_back_arrow().click()
Esempio n. 16
0
    def test_verify_activation_rate_on_copy_criteria(self):
        section = self.__class__.__name__
        project_name_act_rate = self.configAB["cpm_rate"][
            "project_name_act_rate"]
        source_audience_name = self.configAB["cpm_rate"][
            "source_audience_name"]

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

        project_page = ProjectPage(self.webdriver, self.config)
        project_page.audience_menu_icon(source_audience_name).click()
        project_page.audienceEditIcon(source_audience_name)

        audience_page = AudiencePage(self.webdriver, self.config)

        activation_rate1 = WebDriverWait(self.webdriver, 50).until(
            EC.visibility_of_element_located(
                (By.XPATH, "//span[contains(@class,'cost')]"))).text
        audience_page.copy_audience_criteria_within_self("Location Data")
        self.webdriver.find_element_by_xpath(
            "//div[@class='sources-panel']/div[1]").click()

        #Opening criteria builder page
        project_page.AddAudienceButton().click()
        sleep(5)
        self.webdriver.find_element_by_xpath(
            "//div[text()='Insert Copied Criteria']").click()

        activation_rate2 = WebDriverWait(self.webdriver, 50).until(
            EC.visibility_of_element_located(
                (By.XPATH, "//span[contains(@class,'cost')]"))).text

        self.assertEqual(activation_rate1, activation_rate2,
                         'Activation rate differ after copy')
        audience_page.aud_back_arrow().click()
    def test_download_audiences(self):
        project_name = self.configAB["Aqfer"]["project_name"]
        path = os.path.join('testdata', 'sidebar.json')
        print("location:" + path)

        project_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 + '_QA'
            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) + "]").click()
                # download_link    = self.webdriver.find_element_by_xpath("(//div[@class = 'audiences-section']//div[contains(@class,'download-button')])[position()= "+str(i)+"]")
                # download_link.click()
                # audience_menu_icon = self.webdriver.find_element_by_xpath("//div[text()='" + audience_name + "']//following::div[1]")
                self.webdriver.execute_script(
                    "arguments[0].click();",
                    project_page.audience_menu_icon(audience_name))
                self.webdriver.execute_script(
                    "arguments[0].click();",
                    project_page.audience_download_icon(audience_name))
                self.webdriver.execute_script(
                    "arguments[0].click();",
                    project_page.audience_data(audience_name))
    def test_verify_Quarter(self):
        project_name = self.configAB["Quarter_on_criteria_builder"]["project_name"]
        audience_name = self.configAB["Quarter_on_criteria_builder"]["audience_name"]

        home_page = HomePage(self.webdriver, self.config)
        audience_page = AudiencePage(self.webdriver, self.config)
        project_page = ProjectPage(self.webdriver, self.config)
        home_page.searchProjects(project_name)
        sleep(10)
        project_page.audience_menu_icon(audience_name).click()
        project_page.audienceEditIcon(audience_name)
        sleep(10)
        data_env = audience_page.lbl_data_env().text
        # print("This is the value of data environement " + data_env)
        quarter_time = audience_page.Time_Period().text
        # print("This is the time period " + quarter_time)
        self.assertIn(quarter_time, data_env)
        audience_page.Time_Period_Edit().click()
        drp_quarter = audience_page.drp_Quarter()
        dd_quarter = Select(drp_quarter)
        dd_quarter.select_by_visible_text("Q2 2019")
        audience_page.btn_quarter_create().click()
        sleep(15)
        audience_page.save_audience_button().click()
        project_page.audience_menu_icon(audience_name).click()
        project_page.audienceEditIcon(audience_name)
        self.assertIn(quarter_time, data_env)
        sleep(10)

        data_env = audience_page.lbl_data_env().text
        # print("This is the value of data environement " + data_env)
        quarter_time = audience_page.Time_Period().text
        # print("This is the time period " + quarter_time)
        self.assertIn(quarter_time, data_env)
        audience_page.Time_Period_Edit().click()
        drp_quarter = audience_page.drp_Quarter()
        dd_quarter = Select(drp_quarter)
        dd_quarter.select_by_visible_text("Q1 2020")
        audience_page.btn_quarter_create().click()
        audience_page.save_audience_button().click()
        project_page.audience_menu_icon(audience_name).click()
        project_page.audienceEditIcon(audience_name)
        self.assertIn(quarter_time, data_env)
Esempio n. 19
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()
    def test_save_and_create_audience_button(self):
        project_name = self.configAB["Save_Create_button_audiences"]["project_name"]
        audience_name = self.configAB["Save_Create_button_audiences"]["audience_name"]
        omni_username = self.configAB["AELogin"]["username"]
        # omni_password         = self.configAB["AELogin"]["password"]
        shared_username = self.configAB["Save_Create_button_audiences"]["shared_userid"]
        shared_password = self.configAB["Save_Create_button_audiences"]["shared_pwd"]
        # category = self.configAB["Save_Create_button_audiences"]["category"]
        # sub_category = self.configAB["Save_Create_button_audiences"]["sub_category"]

        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.audience_menu_icon(audience_name).click()
        project_page.audienceEditIcon(audience_name)
        sleep(10)
        user_owner = audience_page.lbl_User().text
        print("This is the owner of this project " + user_owner)
        sleep(10)
        omni_first_name = omni_username.split('.')[0]
        print("This is the first name " + omni_first_name)
        omni_last_name = omni_username.split('.')[1]
        print("This is the last name " + omni_last_name)
        omni_owner = omni_first_name + " " + omni_last_name
        print("This is the omni_owner name " + omni_owner)
        # if user_owner == omni_username:
        btn_saveaud = audience_page.save_audience_button().is_enabled()
        print(btn_saveaud)
        self.assertIs(btn_saveaud, True)
        btn_savencreate = audience_page.save_and_create_button().is_enabled()
        print(btn_savencreate)
        self.assertIs(btn_savencreate, True)
        audience_page.add_criteria_plusicon().click()
        # audience_page.create_browsing_behaviour_domain_categories(category, sub_category)

        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)

        self.assertIs(btn_saveaud, True)
        self.assertIs(btn_savencreate, True)

        sleep(10)
        self.webdriver.switch_to_default_content()
        # actions = ActionChains(self.webdriver)
        # actions.move_to_element(project_page.img_profile()).perform()
        home_page.img_profile().click()
        sleep(5)
        home_page.link_signout().click()
        sleep(15)
        login_page = LoginPage(self.webdriver, self.config)
        login_page.login(shared_username, shared_password)
        sleep(15)
        WebDriverWait(self.webdriver, 100).until(EC.visibility_of_element_located((By.XPATH, "//button[@class='header_nav_btn']"))).click()

        sleep(5)
        # try:
        #     WebDriverWait(self.webdriver, 100).until(EC.presence_of_element_located((By.XPATH, "//a[text()='Clients']"))).click()
        #     sleep(5)
        #     WebDriverWait(self.webdriver, 100).until(EC.presence_of_element_located((By.XPATH, "//span[contains(text(),'OMNI Demo') or contains(text(),'Omni Demo')]"))).click()
        #     sleep(5)
        #     WebDriverWait(self.webdriver, 100).until(EC.presence_of_element_located((By.XPATH, "//button[@class='header_nav_btn']"))).click()
        #     sleep(5)
        # except:
        #     pass
        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(project_name)

        project_page = ProjectPage(self.webdriver, self.config)
        project_page.audience_menu_icon(audience_name).click()
        project_page.audienceEditIcon(audience_name)
        sleep(10)
        user_owner = audience_page.lbl_User().text
        print("This is the owner of this project " + user_owner)
        sleep(10)
        shared_omni_first_name = shared_username.split('.')[0]
        print("This is the shared first name " + shared_omni_first_name)
        shared_omni_last_name = shared_username.split('.')[1]
        print("This is the shared last name " + shared_omni_last_name)
        shared_omni_owner = shared_omni_first_name + " " + shared_omni_last_name
        print("This is the shared omni_owner name " + shared_omni_owner)
        # if user_owner == omni_username:
        btn_saveaud = audience_page.save_audience_button().is_enabled()
        print(btn_saveaud)
        self.assertIs(btn_saveaud, False)
        btn_savencreate = audience_page.save_and_create_button().is_enabled()
        print(btn_savencreate)
        self.assertIs(btn_savencreate, False)
        audience_page = AudiencePage(self.webdriver, self.config)
        audience_page.add_criteria_plusicon().click()
        # audience_page.create_browsing_behaviour_domain_categories(category, sub_category)

        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)

        self.assertIs(btn_saveaud, False)
        self.assertIs(btn_savencreate, False)

    # def test_verify_agerange_starts_from_eighteen_on_the_fly(self):
    #     rand = my_random_string(3)
    #     home_page = HomePage(self.webdriver, self.config)
    #     project_page = ProjectPage(self.webdriver, self.config)
    #     audience_page = AudiencePage(self.webdriver, self.config)
    #     # Project Creation
    #     home_page.createProject('Test Proj' + rand, 'NA - United States')
    #     sleep(10)
    #     project_page.add_audience_button().click()
    #     sleep(10)
    #     # Adding Criteria
    #     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")
    #     # Deleting Project
    #     audience_page.aud_back_arrow().click()
    #     project_page.project_menu_icon('Test Proj' + rand).click()
    #     project_page.project_delete_icon('Test Proj' + rand).click()
    #     project_page.AlertOkButton().click()
    #
    # def test_verify_agerange_starts_from_eighteen_advance_audience_on_the_fly(self):
    #     rand = my_random_string(3)
    #     home_page = HomePage(self.webdriver, self.config)
    #     project_page = ProjectPage(self.webdriver, self.config)
    #     audience_page = AudiencePage(self.webdriver, self.config)
    #     # Project Creation
    #     home_page.createProject('Test Proj' + rand, 'NA - United States')
    #     sleep(10)
    #     # Adding Criteria
    #     project_page.add_audience_button().click()
    #     sleep(10)
    #     audience_page.add_dataSource("Advanced Audience Data")
    #     showing_age_list = audience_page.check_advance_age()
    #     str =showing_age_list.replace("\n", "\t").replace("Age Range in Household - ","").replace("Age - Head of Household","")\
    #         .replace("Age - Input Individual","").replace("18-24","").replace("25-34","").replace("35-44","").replace("45-54","").replace("55-64","").replace("65-74","")\
    #         .replace("75+","").replace(" - Male","").replace(" - Female","").replace(" - Unknown Gender","").replace("-","").strip()
    #
    #     self.assertEqual(str, "", "Age attributes are not correct")
    #     # Deleting Project
    #     audience_page.aud_back_arrow().click()
    #     project_page.project_menu_icon('Test Proj' + rand).click()
    #     project_page.project_delete_icon('Test Proj' + rand).click()
    #     project_page.AlertOkButton().click()
    #
    # def test_saved_audience_timestamp_on_the_fly(self):
    #     rand = my_random_string(3)
    #     home_page = HomePage(self.webdriver, self.config)
    #     project_page = ProjectPage(self.webdriver, self.config)
    #     audience_page = AudiencePage(self.webdriver, self.config)
    #     project_name = 'Test Proj' + rand
    #     # Project Creation
    #     home_page.createProject('Test Proj' + rand, 'NA - United States')
    #     sleep(10)
    #     # Adding Criteria
    #     project_page.add_audience_button().click()
    #     sleep(10)
    #     audience_page.audience_name_textbox().send_keys('Test Audience1')
    #     audience_page.add_dataSource('Browsing Behavior')
    #     audience_page.create_browsing_behaviour_domain_names('facebook.com')
    #     audience_page.save_audience_button().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.searchProjects(project_name)
    #     sleep(5)
    #     project_page.audience_menu_icon('Test Audience1').click()
    #     project_page.audienceEditIcon('Test Audience1')
    #     actual_timestamp = self.webdriver.find_element_by_xpath("//div[contains(@class,'edit-when ng-scope')]").text
    #     # print("This is the actual timestamp " + actual_timestamp)
    #     date_time = audience_page.lbl_date_time().text
    #     user = audience_page.lbl_User().text
    #     data_env = audience_page.lbl_data_env().text
    #     expected_timestamp = "Last Saved" + " " + date_time + " By " + user + " " + data_env
    #     assert actual_timestamp.startswith("Last Saved")
    #     self.assertEqual(actual_timestamp, expected_timestamp)
    #     # Deleting Project
    #     audience_page.aud_back_arrow().click()
    #     project_page.project_menu_icon('Test Proj' + rand).click()
    #     project_page.project_delete_icon('Test Proj' + rand).click()
    #     project_page.AlertOkButton().click()
    #
    # def test_time_period_criteria_on_the_fly(self):
    #     rand = my_random_string(3)
    #     home_page = HomePage(self.webdriver, self.config)
    #     project_page = ProjectPage(self.webdriver, self.config)
    #     audience_page = AudiencePage(self.webdriver, self.config)
    #     project_name = 'Test Proj' + rand
    #     # Project Creation
    #     home_page.createProject('Test Proj' + rand, 'NA - United States')
    #     sleep(10)
    #     # Adding Criteria
    #     project_page.add_audience_button().click()
    #     time_period = audience_page.get_time_period().text
    #     self.assertEqual(time_period, "Q2 2019", "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 Quarter*']/following::select[contains(@ng-model,'selectedTimePeriodsNew')]/option[contains(@value,'object')]").text
    #     # Deleting Project
    #     audience_page.aud_back_arrow().click()
    #     project_page.project_menu_icon('Test Proj' + rand).click()
    #     project_page.project_delete_icon('Test Proj' + rand).click()
    #     project_page.AlertOkButton().click()
    #
    # def test_save_and_create_disable_on_the_fly(self):
    #     rand = my_random_string(3)
    #     home_page = HomePage(self.webdriver, self.config)
    #     project_page = ProjectPage(self.webdriver, self.config)
    #     # Project Creation
    #     home_page.createProject('Test Proj' + rand, 'NA - United States')
    #     sleep(10)
    #     # Audience Creation
    #     project_page.add_audience_button().click()
    #     audience_page = AudiencePage(self.webdriver, self.config)
    #     audience_page.audience_name_textbox().send_keys('Test Audience1')
    #     audience_page.add_dataSource('Browsing Behavior')
    #     audience_page.create_browsing_behaviour_domain_names('facebook.com')
    #     audience_page.save_and_create_button().click()
    #     sleep(5)
    #     project_page.audience_menu_icon('Test Audience1').click()
    #     project_page.audienceEditIcon('Test Audience1')
    #     status = audience_page.save_and_create_button().get_attribute('disabled')
    #     self.assertEqual(status,'true','save and create disable feature not working')
    #     # Deleting Project
    #     audience_page.aud_back_arrow().click()
    #     project_page.project_menu_icon('Test Proj' + rand).click()
    #     project_page.project_delete_icon('Test Proj' + rand).click()
    #     project_page.AlertOkButton().click()
    #
    # def test_verify_Quarter_on_the_fly(self):
    #     rand = my_random_string(3)
    #     home_page = HomePage(self.webdriver, self.config)
    #     project_page = ProjectPage(self.webdriver, self.config)
    #     audience_page = AudiencePage(self.webdriver, self.config)
    #     project_name = 'Test Proj' + rand
    #     # Project Creation
    #     home_page.createProject('Test Proj' + rand, 'NA - United States')
    #     sleep(10)
    #     # Audience Creation
    #     project_page.add_audience_button().click()
    #     audience_page.audience_name_textbox().send_keys('Test Audience1')
    #     audience_page.add_dataSource('Browsing Behavior')
    #     audience_page.create_browsing_behaviour_domain_names('facebook.com')
    #     audience_page.save_and_create_button().click()
    #     sleep(10)
    #     self.webdriver.switch_to_default_content()
    #     home_page.lbl_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(project_name)
    #     sleep(5)
    #     project_page.audience_menu_icon('Test Audience1').click()
    #     project_page.audienceEditIcon('Test Audience1')
    #     sleep(10)
    #     data_env = audience_page.lbl_data_env().text
    #     #print("This is the value of data environment " + data_env)
    #     quarter_time = audience_page.Time_Period().text
    #     #print("This is the time period " + quarter_time)
    #     self.assertIn(quarter_time, data_env)
    #     audience_page.Time_Period_Edit().click()
    #     drp_quarter = audience_page.drp_Quarter()
    #     dd_quarter = Select(drp_quarter)
    #     dd_quarter.select_by_visible_text("Q2 2019")
    #     audience_page.btn_quarter_create().click()
    #     audience_page.save_audience_button().click()
    #     project_page.audience_menu_icon('Test Audience1').click()
    #     project_page.audienceEditIcon('Test Audience1')
    #     self.assertIn(quarter_time, data_env)
    #     sleep(10)
    #     data_env = audience_page.lbl_data_env().text
    #     #print("This is the value of data environement " + data_env)
    #     quarter_time = audience_page.Time_Period().text
    #     #print("This is the time period " + quarter_time)
    #     self.assertIn(quarter_time, data_env)
    #     audience_page.Time_Period_Edit().click()
    #     drp_quarter = audience_page.drp_Quarter()
    #     dd_quarter = Select(drp_quarter)
    #     dd_quarter.select_by_visible_text("Q1 2019")
    #     audience_page.btn_quarter_create().click()
    #     audience_page.save_audience_button().click()
    #     project_page.audience_menu_icon('Test Audience1').click()
    #     project_page.audienceEditIcon('Test Audience1')
    #     self.assertIn(quarter_time, data_env)
    #     # Deleting Project
    #     audience_page.aud_back_arrow().click()
    #     project_page.project_menu_icon('Test Proj' + rand).click()
    #     project_page.project_delete_icon('Test Proj' + rand).click()
    #     project_page.AlertOkButton().click()
    #
    # def test_save_and_create_audience_button_on_the_fly(self):
    #     rand = my_random_string(3)
    #     home_page = HomePage(self.webdriver, self.config)
    #     project_page = ProjectPage(self.webdriver, self.config)
    #     audience_page = AudiencePage(self.webdriver, self.config)
    #     project_name = 'Test Proj' + rand
    #     omni_username = self.configAB["AELogin"]["username"]
    #     shared_username = '******'
    #     shared_password = '******'
    #     # Project Creation
    #     home_page.createProject('Test Proj' + rand, 'NA - United States')
    #     sleep(10)
    #     # Audience Creation
    #     project_page.add_audience_button().click()
    #     audience_page.audience_name_textbox().send_keys('Test Audience1')
    #     audience_page.add_dataSource('Browsing Behavior')
    #     audience_page.create_browsing_behaviour_domain_names('facebook.com')
    #     audience_page.save_and_create_button().click()
    #     sleep(10)
    #     self.webdriver.switch_to_default_content()
    #     home_page.lbl_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(project_name)
    #     sleep(5)
    #     project_page.audience_menu_icon('Test Audience1').click()
    #     project_page.audienceEditIcon('Test Audience1')
    #     sleep(10)
    #     user_owner = audience_page.lbl_User().text
    #     print("This is the owner of this project " + user_owner)
    #     sleep(10)
    #     omni_first_name = omni_username.split('.')[0]
    #     print("This is the first name " + omni_first_name)
    #     omni_last_name = omni_username.split('.')[1]
    #     print("This is the last name " + omni_last_name)
    #     omni_owner = omni_first_name + " " + omni_last_name
    #     print("This is the omni_owner name " + omni_owner)
    #     # if user_owner == omni_username:
    #     btn_saveaud = audience_page.save_audience_button().is_enabled()
    #     print(btn_saveaud)
    #     self.assertIs(btn_saveaud, True)
    #     btn_savencreate = audience_page.save_and_create_button().is_enabled()
    #     print(btn_savencreate)
    #     self.assertIs(btn_savencreate, True)
    #     audience_page.add_criteria_plusicon().click()
    #     audience_page.create_browsing_behaviour_domain_names('facebook.com')
    #     self.assertIs(btn_saveaud, True)
    #     self.assertIs(btn_savencreate, True)
    #
    #     sleep(10)
    #     self.webdriver.switch_to_default_content()
    #     # actions = ActionChains(self.webdriver)
    #     # actions.move_to_element(project_page.img_profile()).perform()
    #     home_page.img_profile().click()
    #     sleep(5)
    #     home_page.link_signout().click()
    #     sleep(15)
    #     login_page = LoginPage(self.webdriver, self.config)
    #     login_page.login(shared_username, shared_password)
    #     sleep(15)
    #     WebDriverWait(self.webdriver, 100).until(EC.visibility_of_element_located((By.XPATH, "//button[@class='header_nav_btn']"))).click()
    #
    #     sleep(5)
    #     # try:
    #     #     WebDriverWait(self.webdriver, 100).until(EC.presence_of_element_located((By.XPATH, "//a[text()='Clients']"))).click()
    #     #     sleep(5)
    #     #     WebDriverWait(self.webdriver, 100).until(EC.presence_of_element_located((By.XPATH, "//span[contains(text(),'OMNI Demo') or contains(text(),'Omni Demo')]"))).click()
    #     #     sleep(5)
    #     #     WebDriverWait(self.webdriver, 100).until(EC.presence_of_element_located((By.XPATH, "//button[@class='header_nav_btn']"))).click()
    #     #     sleep(5)
    #     # except:
    #     #     pass
    #     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(project_name)
    #
    #     project_page = ProjectPage(self.webdriver, self.config)
    #     project_page.audience_menu_icon('Test Audience1').click()
    #     project_page.audienceEditIcon('Test Audience1')
    #     sleep(10)
    #     user_owner = audience_page.lbl_User().text
    #     print("This is the owner of this project " + user_owner)
    #     sleep(10)
    #     shared_omni_first_name = shared_username.split('.')[0]
    #     print("This is the shared first name " + shared_omni_first_name)
    #     shared_omni_last_name = shared_username.split('.')[1]
    #     print("This is the shared last name " + shared_omni_last_name)
    #     shared_omni_owner = shared_omni_first_name + " " + shared_omni_last_name
    #     print("This is the shared omni_owner name " + shared_omni_owner)
    #     # if user_owner == omni_username:
    #     btn_saveaud = audience_page.save_audience_button().is_enabled()
    #     print(btn_saveaud)
    #     self.assertIs(btn_saveaud, False)
    #     btn_savencreate = audience_page.save_and_create_button().is_enabled()
    #     print(btn_savencreate)
    #     self.assertIs(btn_savencreate, False)
    #     audience_page = AudiencePage(self.webdriver, self.config)
    #     audience_page.add_criteria_plusicon().click()
    #     audience_page.create_browsing_behaviour_domain_names('facebook.com')
    #     self.assertIs(btn_saveaud, False)
    #     self.assertIs(btn_savencreate, False)
    #     # Deleting Project
    #     audience_page.aud_back_arrow().click()
    #     project_page.project_menu_icon('Test Proj' + rand).click()
    #     project_page.project_delete_icon('Test Proj' + rand).click()
    #     project_page.AlertOkButton().click()
    def test_audience_rename_tag(self):
        rand = my_random_string(3)
        home_page = HomePage(self.webdriver, self.config)
        home_page.createProject('Test Rename' + rand, 'NA - United States')
        sleep(10)
        project_page = ProjectPage(self.webdriver, self.config)
        project_page.add_audience_button().click()
        audience_page = AudiencePage(self.webdriver, self.config)
        audience_page.audience_name_textbox().send_keys('Audience rename test')
        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.save_audience_button().click()
        sleep(10)
        project_page.audience_menu_icon('Audience rename test').click()
        project_page.audienceEditIcon('Audience rename test')
        audience_page.audience_name_textbox().clear()
        audience_page.audience_name_textbox().send_keys(
            'Audience rename test edited')
        audience_page.save_audience_button().click()
        sleep(10)

        project_page.AudienceName('Audience rename test edited').click()
        project_page.HistoryTab().click()
        sleep(10)
        tag = (WebDriverWait(self.webdriver, 50).until(
            EC.visibility_of_element_located((
                By.XPATH,
                "//audience-history-list/ul/li/audience-history-item/ul[1]/li[2]"
            )))).text

        now = datetime.datetime.now()
        todays_date = now.strftime("%b %d, %Y").replace(' 0', ' ')
        date = self.webdriver.find_element_by_xpath(
            "//audience-history-list/ul/li/audience-history-item/ul[1]/li[3]"
        ).text

        # Verify today's time with log time
        time = self.webdriver.find_element_by_xpath(
            "//audience-history-list/ul/li/audience-history-item/ul[1]/li[4]"
        ).text
        tag_time_value = int(time[:-3].replace(":", ""))
        curr_time_value = int(now.strftime("%I") + now.strftime("%M"))

        assert (curr_time_value -
                tag_time_value) < 45, 'Time displayed in log seems incorrect'
        self.assertEqual(date, todays_date, "created tag date incorrect")
        self.assertEqual(tag, "Edited", "Edited or rename tag incorrect")

        project_page.project_menu_icon('Test Rename' + rand).click()
        project_page.project_delete_icon('Test Rename' + rand).click()
        project_page.AlertOkButton().click()