Update the page-object-model converter tool

This commit is contained in:
Michael Mintz 2019-07-14 00:58:16 -04:00
parent f00de5356f
commit af64ce5f96
1 changed files with 121 additions and 0 deletions

View File

@ -307,6 +307,46 @@ def process_test_file(
seleniumbase_lines.append(command)
continue
# Handle self.slow_click(SELECTOR)
if not object_dict:
data = re.match(
r'''^(\s*)self\.slow_click'''
r'''\((r?['"][\S\s]+['"])\)([\S\s]*)'''
r'''$''', line)
else:
data = re.match(
r'''^(\s*)self\.slow_click'''
r'''\(([\S\s]+)\)([\S\s]*)'''
r'''$''', line)
if data:
whitespace = data.group(1)
selector = '%s' % data.group(2)
selector = remove_extra_slashes(selector)
page_selectors.append(selector)
comments = data.group(3)
command = '''%sself.slow_click(%s)%s''' % (
whitespace, selector, comments)
if selector_dict:
if add_comments:
comments = " # %s" % selector
selector = optimize_selector(selector)
if selector in selector_dict.keys():
selector_object = selector_dict[selector]
changed.append(selector_object.split('.')[0])
command = '''%sself.slow_click(%s)%s''' % (
whitespace, selector_object, comments)
if object_dict:
if not add_comments:
comments = ""
object_name = selector
if object_name in object_dict.keys():
selector_object = object_dict[object_name]
changed.append(object_name.split('.')[0])
command = '''%sself.slow_click(%s)%s''' % (
whitespace, selector_object, comments)
seleniumbase_lines.append(command)
continue
# Handle self.assert_element(SELECTOR)
if not object_dict:
data = re.match(
@ -428,6 +468,46 @@ def process_test_file(
seleniumbase_lines.append(command)
continue
# Handle self.get_element(SELECTOR)
if not object_dict:
data = re.match(
r'''^(\s*)self\.get_element'''
r'''\((r?['"][\S\s]+['"])\)([\S\s]*)'''
r'''$''', line)
else:
data = re.match(
r'''^(\s*)self\.get_element'''
r'''\(([\S\s]+)\)([\S\s]*)'''
r'''$''', line)
if data:
whitespace = data.group(1)
selector = '%s' % data.group(2)
selector = remove_extra_slashes(selector)
page_selectors.append(selector)
comments = data.group(3)
command = '''%sself.get_element(%s)%s''' % (
whitespace, selector, comments)
if selector_dict:
if add_comments:
comments = " # %s" % selector
selector = optimize_selector(selector)
if selector in selector_dict.keys():
selector_object = selector_dict[selector]
changed.append(selector_object.split('.')[0])
command = '''%sself.get_element(%s)%s''' % (
whitespace, selector_object, comments)
if object_dict:
if not add_comments:
comments = ""
object_name = selector
if object_name in object_dict.keys():
selector_object = object_dict[object_name]
changed.append(object_name.split('.')[0])
command = '''%sself.get_element(%s)%s''' % (
whitespace, selector_object, comments)
seleniumbase_lines.append(command)
continue
# Handle self.wait_for_element(SELECTOR)
if not object_dict:
data = re.match(
@ -550,6 +630,47 @@ def process_test_file(
seleniumbase_lines.append(command)
continue
# Handle self.type(SELECTOR, TEXT)
if not object_dict:
data = re.match(
r'''^(\s*)self\.type'''
r'''\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)'''
r'''$''', line)
else:
data = re.match(
r'''^(\s*)self\.type'''
r'''\(([\S\s]+),\s?([\S\s]+)\)([\S\s]*)'''
r'''$''', line)
if data:
whitespace = data.group(1)
selector = '%s' % data.group(2)
selector = remove_extra_slashes(selector)
page_selectors.append(selector)
text = data.group(3)
comments = data.group(4)
command = '''%sself.type(%s, %s)%s''' % (
whitespace, selector, text, comments)
if selector_dict:
if add_comments:
comments = " # %s" % selector
selector = optimize_selector(selector)
if selector in selector_dict.keys():
selector_object = selector_dict[selector]
changed.append(selector_object.split('.')[0])
command = '''%sself.type(%s, %s)%s''' % (
whitespace, selector_object, text, comments)
if object_dict:
if not add_comments:
comments = ""
object_name = selector
if object_name in object_dict.keys():
selector_object = object_dict[object_name]
changed.append(object_name.split('.')[0])
command = '''%sself.type(%s, %s)%s''' % (
whitespace, selector_object, text, comments)
seleniumbase_lines.append(command)
continue
# Handle self.send_keys(SELECTOR, TEXT)
if not object_dict:
data = re.match(