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