Skip to content

Commit 1cba3cc

Browse files
committed
Add more options to the Page Objects generator
1 parent 235b591 commit 1cba3cc

File tree

1 file changed

+281
-0
lines changed

1 file changed

+281
-0
lines changed

seleniumbase/console_scripts/objectify.py

Lines changed: 281 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -604,6 +604,218 @@ def process_test_file(
604604
seleniumbase_lines.append(command)
605605
continue
606606

607+
# Handle self.check_if_unchecked(SELECTOR)
608+
if not object_dict:
609+
data = re.match(
610+
r"""^(\s*)self\.check_if_unchecked"""
611+
r"""\((r?['"][\S\s]+['"])\)([\S\s]*)"""
612+
r"""$""",
613+
line,
614+
)
615+
else:
616+
data = re.match(
617+
r"""^(\s*)self\.check_if_unchecked"""
618+
r"""\(([\S]+)\)([\S\s]*)"""
619+
r"""$""",
620+
line,
621+
)
622+
if data:
623+
whitespace = data.group(1)
624+
selector = "%s" % data.group(2)
625+
selector = remove_extra_slashes(selector)
626+
page_selectors.append(selector)
627+
comments = data.group(3)
628+
command = """%sself.check_if_unchecked(%s)%s""" % (
629+
whitespace,
630+
selector,
631+
comments,
632+
)
633+
if selector_dict:
634+
if add_comments:
635+
comments = " # %s" % selector
636+
selector = optimize_selector(selector)
637+
if selector in selector_dict.keys():
638+
selector_object = selector_dict[selector]
639+
changed.append(selector_object.split(".")[0])
640+
command = """%sself.check_if_unchecked(%s)%s""" % (
641+
whitespace,
642+
selector_object,
643+
comments,
644+
)
645+
if object_dict:
646+
if not add_comments:
647+
comments = ""
648+
object_name = selector
649+
if object_name in object_dict.keys():
650+
selector_object = object_dict[object_name]
651+
changed.append(object_name.split(".")[0])
652+
command = """%sself.check_if_unchecked(%s)%s""" % (
653+
whitespace,
654+
selector_object,
655+
comments,
656+
)
657+
seleniumbase_lines.append(command)
658+
continue
659+
660+
# Handle self.uncheck_if_checked(SELECTOR)
661+
if not object_dict:
662+
data = re.match(
663+
r"""^(\s*)self\.uncheck_if_checked"""
664+
r"""\((r?['"][\S\s]+['"])\)([\S\s]*)"""
665+
r"""$""",
666+
line,
667+
)
668+
else:
669+
data = re.match(
670+
r"""^(\s*)self\.uncheck_if_checked"""
671+
r"""\(([\S]+)\)([\S\s]*)"""
672+
r"""$""",
673+
line,
674+
)
675+
if data:
676+
whitespace = data.group(1)
677+
selector = "%s" % data.group(2)
678+
selector = remove_extra_slashes(selector)
679+
page_selectors.append(selector)
680+
comments = data.group(3)
681+
command = """%sself.uncheck_if_checked(%s)%s""" % (
682+
whitespace,
683+
selector,
684+
comments,
685+
)
686+
if selector_dict:
687+
if add_comments:
688+
comments = " # %s" % selector
689+
selector = optimize_selector(selector)
690+
if selector in selector_dict.keys():
691+
selector_object = selector_dict[selector]
692+
changed.append(selector_object.split(".")[0])
693+
command = """%sself.uncheck_if_checked(%s)%s""" % (
694+
whitespace,
695+
selector_object,
696+
comments,
697+
)
698+
if object_dict:
699+
if not add_comments:
700+
comments = ""
701+
object_name = selector
702+
if object_name in object_dict.keys():
703+
selector_object = object_dict[object_name]
704+
changed.append(object_name.split(".")[0])
705+
command = """%sself.uncheck_if_checked(%s)%s""" % (
706+
whitespace,
707+
selector_object,
708+
comments,
709+
)
710+
seleniumbase_lines.append(command)
711+
continue
712+
713+
# Handle self.select_if_unselected(SELECTOR)
714+
if not object_dict:
715+
data = re.match(
716+
r"""^(\s*)self\.select_if_unselected"""
717+
r"""\((r?['"][\S\s]+['"])\)([\S\s]*)"""
718+
r"""$""",
719+
line,
720+
)
721+
else:
722+
data = re.match(
723+
r"""^(\s*)self\.select_if_unselected"""
724+
r"""\(([\S]+)\)([\S\s]*)"""
725+
r"""$""",
726+
line,
727+
)
728+
if data:
729+
whitespace = data.group(1)
730+
selector = "%s" % data.group(2)
731+
selector = remove_extra_slashes(selector)
732+
page_selectors.append(selector)
733+
comments = data.group(3)
734+
command = """%sself.select_if_unselected(%s)%s""" % (
735+
whitespace,
736+
selector,
737+
comments,
738+
)
739+
if selector_dict:
740+
if add_comments:
741+
comments = " # %s" % selector
742+
selector = optimize_selector(selector)
743+
if selector in selector_dict.keys():
744+
selector_object = selector_dict[selector]
745+
changed.append(selector_object.split(".")[0])
746+
command = """%sself.select_if_unselected(%s)%s""" % (
747+
whitespace,
748+
selector_object,
749+
comments,
750+
)
751+
if object_dict:
752+
if not add_comments:
753+
comments = ""
754+
object_name = selector
755+
if object_name in object_dict.keys():
756+
selector_object = object_dict[object_name]
757+
changed.append(object_name.split(".")[0])
758+
command = """%sself.select_if_unselected(%s)%s""" % (
759+
whitespace,
760+
selector_object,
761+
comments,
762+
)
763+
seleniumbase_lines.append(command)
764+
continue
765+
766+
# Handle self.unselect_if_selected(SELECTOR)
767+
if not object_dict:
768+
data = re.match(
769+
r"""^(\s*)self\.unselect_if_selected"""
770+
r"""\((r?['"][\S\s]+['"])\)([\S\s]*)"""
771+
r"""$""",
772+
line,
773+
)
774+
else:
775+
data = re.match(
776+
r"""^(\s*)self\.unselect_if_selected"""
777+
r"""\(([\S]+)\)([\S\s]*)"""
778+
r"""$""",
779+
line,
780+
)
781+
if data:
782+
whitespace = data.group(1)
783+
selector = "%s" % data.group(2)
784+
selector = remove_extra_slashes(selector)
785+
page_selectors.append(selector)
786+
comments = data.group(3)
787+
command = """%sself.unselect_if_selected(%s)%s""" % (
788+
whitespace,
789+
selector,
790+
comments,
791+
)
792+
if selector_dict:
793+
if add_comments:
794+
comments = " # %s" % selector
795+
selector = optimize_selector(selector)
796+
if selector in selector_dict.keys():
797+
selector_object = selector_dict[selector]
798+
changed.append(selector_object.split(".")[0])
799+
command = """%sself.unselect_if_selected(%s)%s""" % (
800+
whitespace,
801+
selector_object,
802+
comments,
803+
)
804+
if object_dict:
805+
if not add_comments:
806+
comments = ""
807+
object_name = selector
808+
if object_name in object_dict.keys():
809+
selector_object = object_dict[object_name]
810+
changed.append(object_name.split(".")[0])
811+
command = """%sself.unselect_if_selected(%s)%s""" % (
812+
whitespace,
813+
selector_object,
814+
comments,
815+
)
816+
seleniumbase_lines.append(command)
817+
continue
818+
607819
# Handle self.switch_to_frame(SELECTOR)
608820
if not object_dict:
609821
data = re.match(
@@ -1435,6 +1647,75 @@ def process_test_file(
14351647
seleniumbase_lines.append(command)
14361648
continue
14371649

1650+
# Handle self.drag_and_drop(SELECTOR, SELECTOR)
1651+
if not object_dict:
1652+
data = re.match(
1653+
r"""^(\s*)self\.drag_and_drop"""
1654+
r"""\((r?['"][\S\s]+['"]),\s?([\S\s]+)\)([\S\s]*)"""
1655+
r"""$""",
1656+
line,
1657+
)
1658+
else:
1659+
data = re.match(
1660+
r"""^(\s*)self\.drag_and_drop"""
1661+
r"""\(([\S]+),\s?([\S]+)\)([\S\s]*)"""
1662+
r"""$""",
1663+
line,
1664+
)
1665+
if data:
1666+
whitespace = data.group(1)
1667+
selector1 = "%s" % data.group(2)
1668+
selector1 = remove_extra_slashes(selector1)
1669+
page_selectors.append(selector1)
1670+
selector2 = "%s" % data.group(3)
1671+
selector2 = remove_extra_slashes(selector2)
1672+
page_selectors.append(selector2)
1673+
comments = data.group(4)
1674+
command = """%sself.drag_and_drop(%s, %s)%s""" % (
1675+
whitespace,
1676+
selector1,
1677+
selector2,
1678+
comments,
1679+
)
1680+
if selector_dict:
1681+
if add_comments:
1682+
comments = " # %s" % selector
1683+
selector1 = optimize_selector(selector1)
1684+
selector2 = optimize_selector(selector2)
1685+
if selector1 in selector_dict.keys() and (
1686+
selector2 in selector_dict.keys()
1687+
):
1688+
selector_object1 = selector_dict[selector1]
1689+
selector_object2 = selector_dict[selector2]
1690+
changed.append(selector_object1.split(".")[0])
1691+
changed.append(selector_object2.split(".")[0])
1692+
command = """%sself.drag_and_drop(%s, %s)%s""" % (
1693+
whitespace,
1694+
selector_object1,
1695+
selector_object2,
1696+
comments,
1697+
)
1698+
if object_dict:
1699+
if not add_comments:
1700+
comments = ""
1701+
object_name1 = selector1
1702+
object_name2 = selector2
1703+
if object_name1 in object_dict.keys() and (
1704+
object_name2 in object_dict.keys()
1705+
):
1706+
selector_object1 = object_dict[object_name1]
1707+
selector_object2 = object_dict[object_name2]
1708+
changed.append(object_name1.split(".")[0])
1709+
changed.append(object_name2.split(".")[0])
1710+
command = """%sself.drag_and_drop(%s, %s)%s""" % (
1711+
whitespace,
1712+
selector_object1,
1713+
selector_object2,
1714+
comments,
1715+
)
1716+
seleniumbase_lines.append(command)
1717+
continue
1718+
14381719
# Handle self.hover_and_click(SELECTOR, SELECTOR)
14391720
if not object_dict:
14401721
data = re.match(

0 commit comments

Comments
 (0)