Skip to content

Commit af64ce5

Browse files
committed
Update the page-object-model converter tool
1 parent f00de53 commit af64ce5

File tree

1 file changed

+121
-0
lines changed

1 file changed

+121
-0
lines changed

seleniumbase/utilities/selenium_ide/objectify.py

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,46 @@ def process_test_file(
307307
seleniumbase_lines.append(command)
308308
continue
309309

310+
# Handle self.slow_click(SELECTOR)
311+
if not object_dict:
312+
data = re.match(
313+
r'''^(\s*)self\.slow_click'''
314+
r'''\((r?['"][\S\s]+['"])\)([\S\s]*)'''
315+
r'''$''', line)
316+
else:
317+
data = re.match(
318+
r'''^(\s*)self\.slow_click'''
319+
r'''\(([\S\s]+)\)([\S\s]*)'''
320+
r'''$''', line)
321+
if data:
322+
whitespace = data.group(1)
323+
selector = '%s' % data.group(2)
324+
selector = remove_extra_slashes(selector)
325+
page_selectors.append(selector)
326+
comments = data.group(3)
327+
command = '''%sself.slow_click(%s)%s''' % (
328+
whitespace, selector, comments)
329+
if selector_dict:
330+
if add_comments:
331+
comments = " # %s" % selector
332+
selector = optimize_selector(selector)
333+
if selector in selector_dict.keys():
334+
selector_object = selector_dict[selector]
335+
changed.append(selector_object.split('.')[0])
336+
command = '''%sself.slow_click(%s)%s''' % (
337+
whitespace, selector_object, comments)
338+
if object_dict:
339+
if not add_comments:
340+
comments = ""
341+
object_name = selector
342+
if object_name in object_dict.keys():
343+
selector_object = object_dict[object_name]
344+
changed.append(object_name.split('.')[0])
345+
command = '''%sself.slow_click(%s)%s''' % (
346+
whitespace, selector_object, comments)
347+
seleniumbase_lines.append(command)
348+
continue
349+
310350
# Handle self.assert_element(SELECTOR)
311351
if not object_dict:
312352
data = re.match(
@@ -428,6 +468,46 @@ def process_test_file(
428468
seleniumbase_lines.append(command)
429469
continue
430470

471+
# Handle self.get_element(SELECTOR)
472+
if not object_dict:
473+
data = re.match(
474+
r'''^(\s*)self\.get_element'''
475+
r'''\((r?['"][\S\s]+['"])\)([\S\s]*)'''
476+
r'''$''', line)
477+
else:
478+
data = re.match(
479+
r'''^(\s*)self\.get_element'''
480+
r'''\(([\S\s]+)\)([\S\s]*)'''
481+
r'''$''', line)
482+
if data:
483+
whitespace = data.group(1)
484+
selector = '%s' % data.group(2)
485+
selector = remove_extra_slashes(selector)
486+
page_selectors.append(selector)
487+
comments = data.group(3)
488+
command = '''%sself.get_element(%s)%s''' % (
489+
whitespace, selector, comments)
490+
if selector_dict:
491+
if add_comments:
492+
comments = " # %s" % selector
493+
selector = optimize_selector(selector)
494+
if selector in selector_dict.keys():
495+
selector_object = selector_dict[selector]
496+
changed.append(selector_object.split('.')[0])
497+
command = '''%sself.get_element(%s)%s''' % (
498+
whitespace, selector_object, comments)
499+
if object_dict:
500+
if not add_comments:
501+
comments = ""
502+
object_name = selector
503+
if object_name in object_dict.keys():
504+
selector_object = object_dict[object_name]
505+
changed.append(object_name.split('.')[0])
506+
command = '''%sself.get_element(%s)%s''' % (
507+
whitespace, selector_object, comments)
508+
seleniumbase_lines.append(command)
509+
continue
510+
431511
# Handle self.wait_for_element(SELECTOR)
432512
if not object_dict:
433513
data = re.match(
@@ -550,6 +630,47 @@ def process_test_file(
550630
seleniumbase_lines.append(command)
551631
continue
552632

633+
# Handle self.type(SELECTOR, TEXT)
634+
if not object_dict:
635+
data = re.match(
636+
r'''^(\s*)self\.type'''
637+
r'''\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)'''
638+
r'''$''', line)
639+
else:
640+
data = re.match(
641+
r'''^(\s*)self\.type'''
642+
r'''\(([\S\s]+),\s?([\S\s]+)\)([\S\s]*)'''
643+
r'''$''', line)
644+
if data:
645+
whitespace = data.group(1)
646+
selector = '%s' % data.group(2)
647+
selector = remove_extra_slashes(selector)
648+
page_selectors.append(selector)
649+
text = data.group(3)
650+
comments = data.group(4)
651+
command = '''%sself.type(%s, %s)%s''' % (
652+
whitespace, selector, text, comments)
653+
if selector_dict:
654+
if add_comments:
655+
comments = " # %s" % selector
656+
selector = optimize_selector(selector)
657+
if selector in selector_dict.keys():
658+
selector_object = selector_dict[selector]
659+
changed.append(selector_object.split('.')[0])
660+
command = '''%sself.type(%s, %s)%s''' % (
661+
whitespace, selector_object, text, comments)
662+
if object_dict:
663+
if not add_comments:
664+
comments = ""
665+
object_name = selector
666+
if object_name in object_dict.keys():
667+
selector_object = object_dict[object_name]
668+
changed.append(object_name.split('.')[0])
669+
command = '''%sself.type(%s, %s)%s''' % (
670+
whitespace, selector_object, text, comments)
671+
seleniumbase_lines.append(command)
672+
continue
673+
553674
# Handle self.send_keys(SELECTOR, TEXT)
554675
if not object_dict:
555676
data = re.match(

0 commit comments

Comments
 (0)