Esempio n. 1
0
    @step(r'drag the page element "([^"]+)" and drop it on the%s %s %s$' % (
          PICK_EXPRESSION, ELEMENT_THING_STRING, finder_string))
    def _drag_page_el_2_thing(step, element_name, pick, find_pattern):
        src = get_visible_page_element(element_name)
        target = _get_visible_element(finder_function, pick, find_pattern)

        action_chain = ActionChains(world.browser.driver)
        action_chain.drag_and_drop(src, target)
        action_chain.perform()

def _generate_drag_and_drop():
    @step(r'drag the page element "([^"]+)" and drop it on the page element "([^"]+)"$')
    def _drag_page_el_2_page_el(step, elemant_name_src, element_name_target):
        src = get_visible_page_element(elemant_name_src)
        target = get_visible_page_element(element_name_target)

        action_chain = ActionChains(world.browser.driver)
        action_chain.drag_and_drop(src, target)
        action_chain.perform()

for _action_string, _action_function in ACTIONS.iteritems():
    _generate_action_step(_action_string, _action_function)

    for finder_string, finder_function in ELEMENT_FINDERS.iteritems():
        _generate_action_step_inside(finder_string, finder_function, _action_string, _action_function)

_generate_drag_and_drop()

for finder_string, finder_function in ELEMENT_FINDERS.iteritems():
    _generate_hybrid_drag_and_drop(finder_string, finder_function)
Esempio n. 2
0
File: forms.py Progetto: salad/salad
    elif type_of_fill == 'string':
        return _generate_random_string(length)
    elif type_of_fill == 'name':
        name = _generate_random_string(length)
        if length <= 3:
            return name
        index = randint(1, len(name) - 2)
        return name[:index] + ' ' + name[index + 1:]


def _generate_random_string(length):
    lst = [choice(ascii_letters) for n in xrange(length)]
    return "".join(lst)


for finder_string, finder_function in ELEMENT_FINDERS.iteritems():

    def _type_generator(finder_string, finder_function):
        @step(r'(slowly )?type "([^"]*)" into the%s %s %s' %
              (PICK_EXPRESSION, ELEMENT_THING_STRING, finder_string))
        def _this_step(step, slowly, text, pick, find_pattern):
            ele = _get_visible_element(finder_function, pick, find_pattern)
            if slowly and slowly != "":
                _type_slowly(ele, text)
            else:
                ele.value = text

        return _this_step

    globals()["form_type_%s" % (finder_function, )] = _type_generator(
        finder_string, finder_function)
Esempio n. 3
0
    def _this_step(step, handler_pick, drag_handler_pattern, target_pick,
                   drag_target_pattern):
        handler = _get_visible_element(finder_function_from, handler_pick,
                                       drag_handler_pattern)
        target = _get_visible_element(finder_function_to, target_pick,
                                      drag_target_pattern)

        action_chain = ActionChains(world.browser.driver)
        action_chain.drag_and_drop(handler, target)
        action_chain.perform()

    return _this_step


for action_string, action_function in ACTIONS.iteritems():
    for finder_string, finder_function in ELEMENT_FINDERS.iteritems():
        globals()["element_%s_%s" % (action_function, finder_function)] = (
            step_generator(action_string, action_function,
                           ELEMENT_THING_STRING, finder_string,
                           finder_function))

    for finder_string, finder_function in LINK_FINDERS.iteritems():
        globals()["link_%s_%s" % (action_function, finder_function)] = (
            step_generator(action_string, action_function,
                           LINK_THING_STRING, finder_string,
                           finder_function))

for finder_str_from, findr_func_from in ELEMENT_FINDERS.iteritems():
    for finder_str_to, findr_func_to in ELEMENT_FINDERS.iteritems():
        globals()["element_drag_%s_%s" % (findr_func_from, findr_func_to)] = (
            drag_and_drop_generator(ELEMENT_THING_STRING, finder_str_from,
Esempio n. 4
0
    def _this_step(step, handler_pick, drag_handler_pattern, target_pick,
                   drag_target_pattern):
        handler = _get_visible_element(finder_function_from, handler_pick,
                                       drag_handler_pattern)
        target = _get_visible_element(finder_function_to, target_pick,
                                      drag_target_pattern)

        action_chain = ActionChains(world.browser.driver)
        action_chain.drag_and_drop(handler, target)
        action_chain.perform()

    return _this_step


for action_string, action_function in ACTIONS.iteritems():
    for finder_string, finder_function in ELEMENT_FINDERS.iteritems():
        globals()["element_%s_%s" %
                  (action_function, finder_function)] = (step_generator(
                      action_string, action_function, ELEMENT_THING_STRING,
                      finder_string, finder_function))

    for finder_string, finder_function in LINK_FINDERS.iteritems():
        globals()["link_%s_%s" %
                  (action_function, finder_function)] = (step_generator(
                      action_string, action_function, LINK_THING_STRING,
                      finder_string, finder_function))

for finder_str_from, findr_func_from in ELEMENT_FINDERS.iteritems():
    for finder_str_to, findr_func_to in ELEMENT_FINDERS.iteritems():
        globals()["element_drag_%s_%s" %
                  (findr_func_from, findr_func_to)] = (drag_and_drop_generator(
Esempio n. 5
0
 def _make_steps(self):
     for finder_string, finder_function in ELEMENT_FINDERS.iteritems():
         self._make_step(finder_string, finder_function)