def wait_for_ajax(self, jstoolkit=js_toolkit.GLOBAL_WAIT_CONDITION, wait_time=0): wait_time_out = ConfigurationsManager().get_int_for_key(ApplicationProperties.SELENIUM_WAIT_TIMEOUT) \ if wait_time == 0 else wait_time message = 'Wait time out for ajax to complete' return WebDriverWait(base_driver.BaseDriver().get_driver(), wait_time_out).until( WaitForAjax(jstoolkit), message )
def wait_for_css_style(self, style_name_, value_, wait_time=0): wait_time_out = ConfigurationsManager().get_int_for_key(ApplicationProperties.SELENIUM_WAIT_TIMEOUT) \ if wait_time == 0 else wait_time message = "Wait time out for " + self.description + " have css style " + style_name_ + "=" + value_ return WebDriverWait(base_driver.BaseDriver().get_driver(), wait_time_out).until( WaitForCssStyle((self.by, self.locator), style_name_, value_), message)
def wait_for_not_css_class(self, class_name_, wait_time=0): wait_time_out = ConfigurationsManager().get_int_for_key(ApplicationProperties.SELENIUM_WAIT_TIMEOUT) \ if wait_time == 0 else wait_time message = "Wait time out for " + self.description + " have not css class " + class_name_ return WebDriverWait(base_driver.BaseDriver().get_driver(), wait_time_out).until( WaitForNotCssClass((self.by, self.locator), class_name_), message)
def wait_for_not_attribute(self, attr_, value_, wait_time=0): wait_time_out = ConfigurationsManager().get_int_for_key(ApplicationProperties.SELENIUM_WAIT_TIMEOUT) \ if wait_time == 0 else wait_time message = "Wait time out for " + self.description + " " + attr_ + " != " + value_ return WebDriverWait(base_driver.BaseDriver().get_driver(), wait_time_out).until( WaitForNotAttribute((self.by, self.locator), attr_, value_), message)
def wait_for_not_selected(self, wait_time=0): wait_time_out = ConfigurationsManager().get_int_for_key(ApplicationProperties.SELENIUM_WAIT_TIMEOUT) \ if wait_time == 0 else wait_time message = "Wait time out for " + self.description + " not to be selected" return WebDriverWait(base_driver.BaseDriver().get_driver(), wait_time_out).until( WaitForNotSelected((self.by, self.locator)), message)
def wait_for_not_containing_text(self, text_, wait_time=0): wait_time_out = ConfigurationsManager().get_int_for_key(ApplicationProperties.SELENIUM_WAIT_TIMEOUT) \ if wait_time == 0 else wait_time message = "Wait time out for " + self.description + " containing text not " + text_ return WebDriverWait(base_driver.BaseDriver().get_driver(), wait_time_out).until( WaitForNotContainingText( (self.by, self.locator), text_), message)
def wait_for_visible(self, wait_time=0): wait_time_out = ConfigurationsManager().get_int_for_key(ApplicationProperties.SELENIUM_WAIT_TIMEOUT) \ if wait_time == 0 else wait_time message = 'Wait time out for ' + self.description + ' to be visible' return WebDriverWait(base_driver.BaseDriver().get_driver(), wait_time_out).until( WaitForVisible((self.by, self.locator)), message)
def __init__(self, key, cacheable=False): self.locator = None self.by = None self.description = None self._parent_element = None self._listeners = [] self.cacheable = cacheable if isinstance(key, str) and len(key) > 0: value = ConfigurationsManager().get_str_for_key(key, default_value=key) #print("30"+value+" loading") try: locator = json.loads(value)['locator'] # self.description = json.loads(value)['description'] except ValueError: locator = value # self.description = value parent = base_driver.BaseDriver().get_driver() self.by, self.locator = get_find_by(locator) if parent.w3c and parent._is_remote is False: if self.by == By.ID: self.by = By.CSS_SELECTOR self.locator = '[id="%s"]' % self.locator elif self.by == By.TAG_NAME: self.by = By.CSS_SELECTOR elif self.by == By.CLASS_NAME: self.by = By.CSS_SELECTOR self.locator = ".%s" % self.locator elif self.by == By.NAME: self.by = By.CSS_SELECTOR self.locator = '[name="%s"]' % self.locator self.description = self.locator self.cacheable = cacheable self._id = -1 RemoteWebElement.__init__(self, parent=parent, id_=self.id, w3c=parent.w3c) if ConfigurationsManager().contains_key( ApplicationProperties.WEBELEMENT_COMMAND_LISTENERS): class_name = ConfigurationsManager().get_str_for_key( ApplicationProperties.WEBELEMENT_COMMAND_LISTENERS) self._listeners.append(load_class(class_name)())
def take_screen_shot(self): filename = os.path.join(os.getenv('REPORT_DIR'), 'img', str(uuid.uuid4()) + '.png') base_driver.BaseDriver().get_driver().save_screenshot(filename=filename) self.obj_check_point.screenshot = filename
def log_with_screenshot(message, message_type=MessageType.Info): filename = os.path.join(os.getenv('REPORT_DIR'), 'img', str(uuid.uuid4()) + '.png') base_driver.BaseDriver().get_driver().save_screenshot( filename=filename) Reporter().add_check_point(message, message_type, screen_shot=filename)
def on_wait_new(self, command_tracker): return WebDriverWait(base_driver.BaseDriver().get_driver(), 30)
def wait_for_not_visible(self, wait_time=0): wait_time_out = ConfigurationsManager().get_int_for_key(ApplicationProperties.SELENIUM_WAIT_TIMEOUT) \ if wait_time == 0 else wait_time return WebDriverWait(base_driver.BaseDriver().get_driver(), wait_time_out).until( WaitForNotVisible((self.by, self.locator)))