@@ -604,6 +604,218 @@ def process_test_file(
604
604
seleniumbase_lines .append (command )
605
605
continue
606
606
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
+
607
819
# Handle self.switch_to_frame(SELECTOR)
608
820
if not object_dict :
609
821
data = re .match (
@@ -1435,6 +1647,75 @@ def process_test_file(
1435
1647
seleniumbase_lines .append (command )
1436
1648
continue
1437
1649
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
+
1438
1719
# Handle self.hover_and_click(SELECTOR, SELECTOR)
1439
1720
if not object_dict :
1440
1721
data = re .match (
0 commit comments