def _get_element(finder_function, pick, pattern): # to support the splinter legacy functions legacy_functions = ['by_value', 'by_partial_href', 'by_href'] for lf in legacy_functions: if lf in finder_function: finder_function = "find_by_css" pattern = PATTERN_ASSOCIATION[lf] % (pattern, ) finder_function = FINDER_ASSOCIATION[finder_function] element = world.browser.driver.__getattribute__(finder_function)(pattern) if not element: msg = ("function: %s, pattern: %s, index: %s" % (finder_function, pattern, pick)) world.failure = (ElementDoesNotExist, msg) return None index = pick_to_index(pick) try: element = element[index] except IndexError: msg = ("There are elements that match your search, but the index is " "out of range.\nfunction: %s, pattern: %s, index: %s" % (finder_function, pattern, pick)) world.failure = (ElementAtIndexDoesNotExist, msg) return None world.current_element = element return element
def _get_element(finder_function, pick, pattern): ele = world.browser.__getattribute__(finder_function)(pattern) index = pick_to_index(pick) ele = ele[index] if not "WebDriverElement" in "%s" % type(ele): if len(ele) > 1: logger.warn("More than one element found when looking with %s " "for %s. Using the first one. " % (finder_function, pattern)) ele = ele.first world.current_element = ele return ele