def get_xpath(self): has_aria_label = self.matches.xpath('@aria-label', self.search_text) has_text = self.matches.xpath('.', self.search_text) has_text_or_aria_label = predicate_or(has_aria_label, has_text) return ' | '.join([ super(ButtonImpl, self).get_xpath(), self.get_input_button_xpath(), "//*[@role='button']" + has_text_or_aria_label, "//button" + predicate(has_aria_label) ])
def _find_elts_by_free_text(self): elt_types = [ xpath.strip().lstrip('/') for xpath in self.get_xpath().split('|') ] labels = '//text()' + predicate(self.matches.xpath('.', self.label)) xpath = ' | '.join( [(labels + '/%s::' + elt_type + '[1]') % ('preceding-sibling' if 'checkbox' in elt_type or 'radio' in elt_type else 'following') for elt_type in elt_types] ) return self._find_elts(xpath)
def get_xpath(self): return "//img" + predicate(self.matches.xpath('@alt', self.alt))
def get_xpath(self): return super(LinkImpl, self).get_xpath() + ' | ' + \ "//a" + \ predicate(self.matches.xpath('@title', self.search_text)) + \ ' | ' + "//*[@role='link']" + \ predicate(self.matches.xpath('.', self.search_text))
def get_xpath(self): xpath_base = "//" + self.get_xpath_node_selector() + \ predicate(self.matches.xpath('.', self.search_text)) return '%s[not(self::script)][not(.%s)]' % (xpath_base, xpath_base)
def get_xpath(self): return "(%s)%s" % ( StandardTextFieldWithLabel(self.label).get_xpath(), predicate(self.matches.xpath('@placeholder', self.label)) )