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_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_multiple_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"]
        audience_name3 = self.configAB[section]["audience_name3"]

        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()
        project_page.AudienceCheckbox(audience_name3).click()
        sleep(10)
        project_page.compare_button().click()
        sleep(10)
    def test_compare_chart_percent(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)
        unit = self.webdriver.find_element_by_xpath(
            "//div[@class='x-axis']/div[12]/span").text
        self.assertEqual(unit, "%", "X axis index values are inaccurate")
    def test_data_source_visualization(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)
        project_page.view_filters_knob().click()
        try:
            project_page.select_datasource_visualization("Browsing Behavior")
            project_page.select_datasource_visualization("Purchase Behavior")
            project_page.select_datasource_visualization("Location Data")
        except:
            pass
    def test_Clear_Selected_button(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)

        check = self.webdriver.find_element_by_css_selector(
            ".clear-button").is_displayed()
        project_page.ClearSelectedButton().click()

        check = self.webdriver.find_element_by_css_selector(
            ".clear-button").is_displayed()
        self.assertEqual(check, False, "Clear button is disabled")