def find_element(self, by, value): try: return self._appium_context().find_element(by, value) except Exception as handleRetry: self._refresh() WaitUtils.wait_for_element_present(self._appium_context(), by, value) return self._appium_context().find_element(by, value)
def __find_elements(self, by, value): try: try: return self._appium_context().find_elements(by, value) except Exception as handleRetry: self._refresh() WaitUtils.wait_for_element_present(self._appium_context(), by, value) return self._appium_context().find_elements(by, value) except Exception as e: raise Exception("Cannot find element by [%s] under: \n %s \n" % (value, self))
def element_exist(self, by, value): try: self.driver.find_element(by, value) return True except Exception as handleRetry: try: WaitUtils.wait_for_element_present(self.driver, by, value) self.driver.find_element(by, value) except Exception as e: raise e
def make_sure_element_exist(self, by, value, interval=5, timeout=20): try: self.driver._appium_context().find_element(by, value) return True except Exception as handleRetry: try: WaitUtils.wait_for_element_present( self.driver._appium_context(), by, value, interval=interval, timeout=timeout) return True except Exception: return False
def _find_web_elements(self, by, value, identifier=None): from .WebElement.DynamicElement import DynamicElement try: web_elements = self._selenium_context().find_elements(by, value) print("The first find elements number is " + str(web_elements)) except Exception as handleRetry: self._refresh() WaitUtils.wait_for_element_present(self._selenium_context(), by, value) web_elements = self._selenium_context().find_elements(by, value) print("The second find elements number is " + str(web_elements)) elements = [] for web_element in web_elements: elements.append(DynamicElement(self, web_element, identifier)) return elements
def clear_element_value(self, by, value): try: self.driver.find_element(by, value).clear() except Exception as handleRetry: WaitUtils.wait_for_element_present(self.driver, by, value) self.driver.find_element(by, value).clear()