class BasePage(DriverAPI): def __init__(self, driver): super(BasePage, self).__init__(driver) self.driver = driver self.util = Util() def validate_page_title(self, title_to_validate): """ Verify the page Title Parameters: title_to_validate: Title on the page that needs to be verified """ try: actual_title = self.get_page_title() return self.util.verify_text_contains(actual_text=actual_title, expected_text=title_to_validate) except ValueError: self.log.error("Failed to get page title") print_stack() return False def validate_page_text(self, text_to_validate): """ Verify the page Text Parameters: text_to_validate: Text on the page that needs to be verified """ try: actual_text = self.get_page_text() return self.util.verify_text_contains(actual_text=actual_text, expected_text=text_to_validate) except ValueError: self.log.error("Failed to get page text") print_stack() return False
class BasePage(SeleniumDriver): def __init__(self, driver): """ Inits BasePage class Returns: None :param driver: """ super(BasePage, self).__init__(driver) self.driver = driver self.util = Util() def verify_page_title(self, title_to_verify): """ Verify page title :param title_to_verify: Title on the page that needs to be verified :return: True or False """ try: actual_title = self.get_title() return self.util.verify_text_contains(actual_title, title_to_verify) except: self.log.error('Failed to get page title') print_stack() return False
class BasePage(SeleniumDriver): def __init__(self, driver): super(BasePage, self).__init__(driver) self.driver = driver self.util = Util() def verify_page_title(self, title_to_verify): try: actual_title = self.get_title() return self.util.verify_text_contains(actual_title, title_to_verify) except: self.log.error("Failed to get page title") print_stack() return False
class BasePage(SeleniumDriver): def __init__(self, driver): super(BasePage, self).__init__(driver) self.driver = driver self.util = Util() def verify_page_title(self, expected_title): try: actual_title = self.get_title() return self.util.verify_text_contains(actual_title, expected_title) except: self.log.error( failed_to_get_page_title_message( self.verify_page_title.__name__)) print_stack() return False
class BasePage(SeleniumDriver): def __init__(self, driver): super(BasePage, self).__init__(driver) self.util = Util() def verify_page_title(self, title_to_verify): """ Verify the page title :param title_to_verify: Title on the page that needs to be verified """ try: actual_title = self.get_title() return self.util.verify_text_contains(actual_title, title_to_verify) except Exception as e: self.log.error("Failed to get page title") self.log.error("### EXCEPTION ERROR !!!" + str(e)) return False
class BasePage(SeleniumDriver): def __init__(self, driver): """ Inits BasePage class returns: None :param driver: """ super(BasePage, self).__init__(driver) self.driver = driver self.util = Util() def verify_page_title(self, title_to_verify): try: actual_title = self.get_title() return self.util.verify_text_contains(actual_title, title_to_verify) except Exception as e: self.log.error("Failed to get page title") print(e) return False
class BasePage(SeleniumDriver): def __init__(self, driver): super(BasePage, self).__init__(driver) # =super().__init__(driver) self.driver = driver self.util = Util() def verify_page_title(self, title_to_verify): ''' Verify the page Title :param title_to_verify: Title on the page that needs to be verified :return: bool ''' try: actual_title = self.get_title() return self.util.verify_text_contains(title_to_verify, actual_title) except: self.log.error('Failed to get page title!') print_stack() return False
class BaseView(AppiumDriver): def __init__(self, driver): """ Inits BaseView class """ super().__init__(driver) self.driver = driver self.util = Util() # This is only for web testing, there is no title in mobile def verifyPageTitle(self, titleToVerify): """ Verify the view title :param titleToVerify: Title on the view that needs to be verified """ try: actualTitle = self.get_web_title() return self.util.verify_text_contains(actualTitle, titleToVerify) except: self.log.error("Failed to get the view title") print_stack() return False
class BasePage(SeleniumDriver): def __init__(self, driver): """ Initialises the BasePage class :param driver: The webdriver instance being used """ super(BasePage, self).__init__(driver) self.driver = driver self.util = Util() def verify_page_title(self, expected_title): """ Verify the retrieved title of a webpage against a given value :param expected_title: Title on the page that needs to be verified :returns: boolean """ try: actual_title = self.get_title() return self.util.verify_text_contains(actual_title, expected_title) except: self.log.error("Failed to get page title") print_stack() return False
class BasePage(SeleniumDriver): def __init__(self, driver): """ Inits Base Page class :param driver: """ super(BasePage, self).__init__(driver) self.driver = driver self.util = Util() def verify_page_title(self, expected_title): """ Vefify a page's Title :param expected_title: Expected title :return: """ try: actual_title = self.get_title() return self.util.verify_text_contains(actual_title, expected_title) except: self.log.error("## Exception Occured: Failed to get page title") print_stack() return False
class BasePage(SeleniumDriver): def __init__(self, driver): """ Inits BasePage class Returns: None :param driver: """ super(BasePage, self).__init__(driver) self.driver = driver self.util = Util() def verify_page_title(self, title_to_verify): """ Verify page title :param title_to_verify: Title on the page that needs to be verified :return: True or False """ try: actual_title = self.get_title() return self.util.verify_text_contains(actual_title, title_to_verify) except: self.log.error('Failed to get page title') print_stack() return False @staticmethod def get_tooltip(element): return element.get_attribute('title').strip() @staticmethod def get_background_color(element): return element.value_of_css_property('background-color') @staticmethod def get_attribute(element, attr): return element.get_attribute(attr) def get_news_title(self): return self.get_text('h1', 'tagname') def get_current_url(self): return self.driver.current_url def get_element_height(self, element): padding_top = convert_pixel_to_number(self.get_css_attr(element, 'padding-top')) padding_bottom = convert_pixel_to_number(self.get_css_attr(element, 'padding-bottom')) border_top = convert_pixel_to_number(self.get_css_attr(element, 'border-top')[0:3]) border_bottom = convert_pixel_to_number(self.get_css_attr(element, 'border-top')[0:3]) height = convert_pixel_to_number(self.get_css_attr(element, 'height')) return padding_top + padding_bottom + border_top + border_bottom + height def get_content_height(self, element): """ Get height of element :param element: The element that you want to get height :return: Height of element -> int """ return convert_pixel_to_number(self.get_css_attr(element, 'height')) def check_element_text_line(self, element, query_selector, line): height = self.driver.execute_script("return document.querySelector('{}').offsetHeight".format(query_selector)) height = int(height) line_height = convert_pixel_to_number(self.get_css_attr(element, 'line-height')) return height/line_height <= line def go_home_page(self): """ Go Home page """ self.driver.get('http://giadinh.net.vn/') def compare_two_lists(self, lst1, lst2, error_msg, success_msg, pre_msg=''): error_list = [] final_msg = '' for index, value in enumerate(lst1): if value != lst2[index]: error_list.append((value, lst2[index])) if error_list: for item in error_list: final_msg = final_msg + error_msg.format(*item) final_msg = final_msg + ' :: FAIL' if pre_msg: final_msg = pre_msg + final_msg return False, final_msg else: success_msg = pre_msg + success_msg return True, success_msg @staticmethod def get_width_height_of_element(element): dct = element.rect return dct['width'], dct['height'] def get_current_url_without_http(self): current_url = self.driver.current_url if current_url[-1] == '/': current_url = current_url[:-1] if 'https' in current_url: return current_url[8:] else: return current_url[7:]