Ejemplo n.º 1
0
class DisappearingElementsPage:
    def __init__(self, driver):
        self.driver = driver
        self.services = Services(self.driver)
        self.header = "Disappearing Elements"
        self.xpathHeading = "//h3"
        self.xpathTabs = "//ul//li//a"
        self.xpathTabByText = self.xpathTabs + "[text()='%s']"

    def verify_disappearing_elements_page(self):
        """
        This method is to verify Disappearing Elements page.

        return: instance of Disappearing Elements page
        rtype: ChallengingDomPage instance
        """

        logging.info("## Verifying Disappearing Elements page ##")
        self.services.wait_for_element(self.xpathHeading)
        actual_heading = self.services.get_text_by_xpath(self.xpathHeading)
        logging.info("# Actual heading on Disappearing Elements page: %s" %
                     actual_heading)
        assert actual_heading == self.header, "Actual header (%s), should be same as expected header (%s)." % (
            actual_heading, self.header)

    def get_list_of_all_tabs(self):
        """
        This function is to get the list of all tabs present on page.
        :return: list of button
        """
        self.services.wait_for_element(self.xpathTabs)
        tabs_ele = self.driver.find_elements_by_xpath(self.xpathTabs)

        tab_lst = []
        for btn in tabs_ele:
            tab_lst.append(btn.text)

        return tab_lst

    def verify_tab_disappear(self, tab_name):
        """
        This function is to tab disappearance.
        :param tab_name: string
        """
        xpath = self.xpathTabByText % tab_name
        print(xpath)

        while (True):
            self.driver.refresh()
            if not self.services.is_element_present(xpath):
                logging.info("# Tab '%s' is not present." % tab_name)
                break
            logging.info("# Tab '%s' is present." % tab_name)

        assert not self.services.is_element_present(
            xpath), "Tab '%s' should not present." % tab_name
Ejemplo n.º 2
0
class IndexPage:
    def __init__(self, driver):
        self.driver = driver
        self.services = Services(self.driver)
        self.dropDown = "//a[contains(text(), 'QA_traininguser13(Empirix_QA_Training)')]"
        self.languageJav = "//a[contains(text(), 'Japanese')]"
        self.languageJavAl = "//div[contains(text(), 'Japanese')]"
        self.languageEng = "//a[contains(text(), 'English')]"
        self.languageEngAl = "//div[contains(text(), 'English')]"
        self.verifyJav = "//a[contains(text(), 'ダッシュボード')]"
        self.verifyEng = "//a[contains(text(), 'Dashboard')]"

    def switch_language(self, language):
        """
        This method is to login into page.

        return: instance of index page
        rtype: indexPage instance
        """

        logging.info("## Verifying login page ##")
        self.services.assert_and_click_by_xpath(self.dropDown)
        if language == "Japanese":
            if self.services.is_element_present(self.languageJavAl):
                logging.info("Already language is Japanese.")
            else:
                if self.services.is_element_present(self.languageJav):
                    self.services.assert_and_click_by_xpath(self.languageJav)
                    obj = self.driver.switch_to.alert
                    obj.accept()
                    self.services.wait_for_element(self.verifyJav)
                else:
                    raise Exception("Element is not present")
        else:
            if self.services.is_element_present(self.languageEngAl):
                logging.info("Already language is English")
            else:
                if self.services.is_element_present(self.languageEng):
                    self.services.assert_and_click_by_xpath(self.languageEng)
                    obj = self.driver.switch_to.alert
                    obj.accept()
                    self.services.wait_for_element(self.verifyEng)
                else:
                    raise Exception("Element is not present")
class DynamicControlsPage:
    def __init__(self, driver):
        self.driver = driver
        self.services = Services(self.driver)
        self.header = "Dynamic Controls"
        self.xpath_heading = "//h4"
        self.xpath_btn = "//button[@type='button' and text()='%s']"
        self.xpath_checkbox = "//input[@type='checkbox']"
        self.xpath_loading = "//div[@id='loading']"

    def verify_dynamic_controls_page(self):
        """
        This method is to verify Dynamic Controls page.

        return: instance of Dynamic Controls page
        rtype: Dynamic ControlsPage instance
        """

        logging.info("## Verifying Dynamic Controls page ##")
        self.services.wait_for_element(self.xpath_heading)
        actual_heading = self.services.get_text_by_xpath(self.xpath_heading)
        logging.info("# Actual heading on Dynamic Controls page: %s" %
                     actual_heading)
        assert actual_heading == self.header, "Actual header (%s), should be same as expected header (%s)." % (
            actual_heading, self.header)

    def verify_removed_element(self):
        assert self.services.is_element_present(
            self.xpath_checkbox), "Checkbox element should be present."

        xpath_remove_btn = self.xpath_btn % "Remove"
        self.services.assert_element_present(xpath_remove_btn)
        remove_btn = self.driver.find_element_by_xpath(xpath_remove_btn)
        remove_btn.click()

        self.services.wait_for_element_visible(self.xpath_loading)
        self.services.assert_element_present(self.xpath_loading)

        self.services.wait_for_element_invisible(self.xpath_loading)
        self.services.assert_element_visibility(self.xpath_loading, False)

        self.services.assert_element_is_not_present(self.xpath_checkbox)
        self.services.assert_element_is_not_present(xpath_remove_btn)

    def verify_add_element(self):

        self.verify_removed_element()

        xpath_add_btn = self.xpath_btn % "Add"
        self.services.assert_element_present(xpath_add_btn)
        add_btn = self.driver.find_element_by_xpath(xpath_add_btn)
        add_btn.click()

        self.services.wait_for_element_visible(self.xpath_loading)
        self.services.assert_element_present(self.xpath_loading)

        self.services.wait_for_element_invisible(self.xpath_loading)
        self.services.assert_element_visibility(self.xpath_loading, False)

        self.services.assert_element_present(self.xpath_checkbox)
        self.services.assert_element_is_not_present(xpath_add_btn)