def _get_elem_by(self, by, value): try: resp = self._post(urllib.quote("element/%s" % by), {"using": by, "value": value}) if not resp: raise NoSuchElementException() return self._get_elem(resp[0]) except ErrorInResponseException, ex: utils.handle_find_element_exception(ex)
def find_element_by_link_text(self, link): """Finds an element by its link text. Returns None if the element is not a link. """ try: return self._get_elem(self._post("element", "link text", link)[0]) except ErrorInResponseException, e: utils.handle_find_element_exception(e)
def _find_element_by(self, selector, key): try: elem_id = self._command("findChildElement", { "id": self._id, "using": selector, "value": key }) return WebElement(self._parent, elem_id) except ErrorInResponseException, ex: utils.handle_find_element_exception(ex)
def _find_elements_by(self, selector, key): try: elem_ids = self._command("findElements", selector, key) elems = [] if elem_ids: for elem_id in elem_ids: elem = WebElement(self, elem_id) elems.append(elem) return elems except ErrorInResponseException, ex: utils.handle_find_element_exception(ex)
def _find_elements_by(self, selector, key): try: resp = self._command("findChildElements", { "id": self._id, "using": selector, "value": key }) if not resp: raise NoSuchElementException( "Unable to locate element for %s" % key) elems = [] for elem_id in resp: elem = WebElement(self._parent, elem_id) elems.append(elem) return elems except ErrorInResponseException, ex: utils.handle_find_element_exception(ex)
def find_element_by_xpath(self, xpath): """Finds element by xpath.""" try: return self._get_elem(self._post("element/xpath", {"using": "xpath", "value": xpath})[0]) except ErrorInResponseException, e: utils.handle_find_element_exception(e)
def _find_element_by(self, selector, key): try: elem_id = self._command("findElement", selector, key) return WebElement(self, elem_id) except ErrorInResponseException, ex: utils.handle_find_element_exception(ex)
def find_element_by_xpath(self, xpath): """Finds an element by xpath.""" try: return self._get_elem(self._post("element", "xpath", xpath)[0]) except ErrorInResponseException, e: utils.handle_find_element_exception(e)
def find_element_by_id(self, id): try: resp = self._post("element", "id", id) return self._get_elem(resp[0]) except ErrorInResponseException, e: utils.handle_find_element_exception(e)