2626 Pattern ,
2727 TypeVar ,
2828 Union ,
29- cast ,
3029)
3130
3231from playwright ._impl ._api_structures import (
@@ -67,13 +66,7 @@ def __init__(
6766 selector : str ,
6867 has_text : Union [str , Pattern ] = None ,
6968 has : "Locator" = None ,
70- left_of : "Locator" = None ,
71- right_of : "Locator" = None ,
72- above : "Locator" = None ,
73- below : "Locator" = None ,
74- near : "Locator" = None ,
7569 ) -> None :
76- _params = locals ()
7770 self ._frame = frame
7871 self ._selector = selector
7972 self ._loop = frame ._loop
@@ -88,18 +81,10 @@ def __init__(
8881 escaped = escape_with_quotes (has_text , '"' )
8982 self ._selector += f" >> :scope:has-text({ escaped } )"
9083
91- for inner in ["has" , "left_of" , "right_of" , "above" , "below" , "near" ]:
92- locator : Optional ["Locator" ] = cast ("Locator" , _params .get (inner ))
93- if not locator :
94- continue
95- if locator ._frame != frame :
96- raise Error (f'Inner "{ inner } " locator must belong to the same frame.' )
97- engine_name = inner
98- if engine_name == "left_of" :
99- engine_name = "left-of"
100- elif engine_name == "right_of" :
101- engine_name = "right-of"
102- self ._selector += f" >> { engine_name } =" + json .dumps (locator ._selector )
84+ if has :
85+ if has ._frame != frame :
86+ raise Error ('Inner "has" locator must belong to the same frame.' )
87+ self ._selector += " >> has=" + json .dumps (has ._selector )
10388
10489 def __repr__ (self ) -> str :
10590 return f"<Locator frame={ self ._frame !r} selector={ self ._selector !r} >"
@@ -215,22 +200,12 @@ def locator(
215200 selector : str ,
216201 has_text : Union [str , Pattern ] = None ,
217202 has : "Locator" = None ,
218- left_of : "Locator" = None ,
219- right_of : "Locator" = None ,
220- above : "Locator" = None ,
221- below : "Locator" = None ,
222- near : "Locator" = None ,
223203 ) -> "Locator" :
224204 return Locator (
225205 self ._frame ,
226206 f"{ self ._selector } >> { selector } " ,
227207 has_text = has_text ,
228208 has = has ,
229- left_of = left_of ,
230- right_of = right_of ,
231- above = above ,
232- below = below ,
233- near = near ,
234209 )
235210
236211 def frame_locator (self , selector : str ) -> "FrameLocator" :
@@ -265,22 +240,12 @@ def filter(
265240 self ,
266241 has_text : Union [str , Pattern ] = None ,
267242 has : "Locator" = None ,
268- left_of : "Locator" = None ,
269- right_of : "Locator" = None ,
270- above : "Locator" = None ,
271- below : "Locator" = None ,
272- near : "Locator" = None ,
273243 ) -> "Locator" :
274244 return Locator (
275245 self ._frame ,
276246 self ._selector ,
277247 has_text = has_text ,
278248 has = has ,
279- left_of = left_of ,
280- right_of = right_of ,
281- above = above ,
282- below = below ,
283- near = near ,
284249 )
285250
286251 async def focus (self , timeout : float = None ) -> None :
@@ -612,26 +577,13 @@ def __init__(self, frame: "Frame", frame_selector: str) -> None:
612577 self ._frame_selector = frame_selector
613578
614579 def locator (
615- self ,
616- selector : str ,
617- has_text : Union [str , Pattern ] = None ,
618- has : "Locator" = None ,
619- left_of : "Locator" = None ,
620- right_of : "Locator" = None ,
621- above : "Locator" = None ,
622- below : "Locator" = None ,
623- near : "Locator" = None ,
580+ self , selector : str , has_text : Union [str , Pattern ] = None , has : "Locator" = None
624581 ) -> Locator :
625582 return Locator (
626583 self ._frame ,
627584 f"{ self ._frame_selector } >> control=enter-frame >> { selector } " ,
628585 has_text = has_text ,
629586 has = has ,
630- left_of = left_of ,
631- right_of = right_of ,
632- above = above ,
633- below = below ,
634- near = near ,
635587 )
636588
637589 def frame_locator (self , selector : str ) -> "FrameLocator" :
0 commit comments