| 782 | |
| 783 | |
| 784 | class FrameLocator: |
| 785 | def __init__(self, frame: "Frame", frame_selector: str) -> None: |
| 786 | self._frame = frame |
| 787 | self._loop = frame._loop |
| 788 | self._dispatcher_fiber = frame._connection._dispatcher_fiber |
| 789 | self._frame_selector = frame_selector |
| 790 | |
| 791 | def locator( |
| 792 | self, |
| 793 | selectorOrLocator: Union["Locator", str], |
| 794 | hasText: Union[str, Pattern[str]] = None, |
| 795 | hasNotText: Union[str, Pattern[str]] = None, |
| 796 | has: Locator = None, |
| 797 | hasNot: Locator = None, |
| 798 | ) -> Locator: |
| 799 | if isinstance(selectorOrLocator, str): |
| 800 | return Locator( |
| 801 | self._frame, |
| 802 | f"{self._frame_selector} >> internal:control=enter-frame >> {selectorOrLocator}", |
| 803 | has_text=hasText, |
| 804 | has_not_text=hasNotText, |
| 805 | has=has, |
| 806 | has_not=hasNot, |
| 807 | ) |
| 808 | selectorOrLocator = to_impl(selectorOrLocator) |
| 809 | if selectorOrLocator._frame != self._frame: |
| 810 | raise ValueError("Locators must belong to the same frame.") |
| 811 | return Locator( |
| 812 | self._frame, |
| 813 | f"{self._frame_selector} >> internal:control=enter-frame >> {selectorOrLocator._selector}", |
| 814 | has_text=hasText, |
| 815 | has_not_text=hasNotText, |
| 816 | has=has, |
| 817 | has_not=hasNot, |
| 818 | ) |
| 819 | |
| 820 | def get_by_alt_text( |
| 821 | self, text: Union[str, Pattern[str]], exact: bool = None |
| 822 | ) -> "Locator": |
| 823 | return self.locator(get_by_alt_text_selector(text, exact=exact)) |
| 824 | |
| 825 | def get_by_label( |
| 826 | self, text: Union[str, Pattern[str]], exact: bool = None |
| 827 | ) -> "Locator": |
| 828 | return self.locator(get_by_label_selector(text, exact=exact)) |
| 829 | |
| 830 | def get_by_placeholder( |
| 831 | self, text: Union[str, Pattern[str]], exact: bool = None |
| 832 | ) -> "Locator": |
| 833 | return self.locator(get_by_placeholder_selector(text, exact=exact)) |
| 834 | |
| 835 | def get_by_role( |
| 836 | self, |
| 837 | role: AriaRole, |
| 838 | checked: bool = None, |
| 839 | disabled: bool = None, |
| 840 | expanded: bool = None, |
| 841 | includeHidden: bool = None, |
no outgoing calls
no test coverage detected