26
26
Pattern ,
27
27
TypeVar ,
28
28
Union ,
29
- cast ,
30
29
)
31
30
32
31
from playwright ._impl ._api_structures import (
@@ -67,13 +66,7 @@ def __init__(
67
66
selector : str ,
68
67
has_text : Union [str , Pattern ] = None ,
69
68
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 ,
75
69
) -> None :
76
- _params = locals ()
77
70
self ._frame = frame
78
71
self ._selector = selector
79
72
self ._loop = frame ._loop
@@ -88,18 +81,10 @@ def __init__(
88
81
escaped = escape_with_quotes (has_text , '"' )
89
82
self ._selector += f" >> :scope:has-text({ escaped } )"
90
83
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 )
103
88
104
89
def __repr__ (self ) -> str :
105
90
return f"<Locator frame={ self ._frame !r} selector={ self ._selector !r} >"
@@ -215,22 +200,12 @@ def locator(
215
200
selector : str ,
216
201
has_text : Union [str , Pattern ] = None ,
217
202
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 ,
223
203
) -> "Locator" :
224
204
return Locator (
225
205
self ._frame ,
226
206
f"{ self ._selector } >> { selector } " ,
227
207
has_text = has_text ,
228
208
has = has ,
229
- left_of = left_of ,
230
- right_of = right_of ,
231
- above = above ,
232
- below = below ,
233
- near = near ,
234
209
)
235
210
236
211
def frame_locator (self , selector : str ) -> "FrameLocator" :
@@ -265,22 +240,12 @@ def filter(
265
240
self ,
266
241
has_text : Union [str , Pattern ] = None ,
267
242
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 ,
273
243
) -> "Locator" :
274
244
return Locator (
275
245
self ._frame ,
276
246
self ._selector ,
277
247
has_text = has_text ,
278
248
has = has ,
279
- left_of = left_of ,
280
- right_of = right_of ,
281
- above = above ,
282
- below = below ,
283
- near = near ,
284
249
)
285
250
286
251
async def focus (self , timeout : float = None ) -> None :
@@ -612,26 +577,13 @@ def __init__(self, frame: "Frame", frame_selector: str) -> None:
612
577
self ._frame_selector = frame_selector
613
578
614
579
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
624
581
) -> Locator :
625
582
return Locator (
626
583
self ._frame ,
627
584
f"{ self ._frame_selector } >> control=enter-frame >> { selector } " ,
628
585
has_text = has_text ,
629
586
has = has ,
630
- left_of = left_of ,
631
- right_of = right_of ,
632
- above = above ,
633
- below = below ,
634
- near = near ,
635
587
)
636
588
637
589
def frame_locator (self , selector : str ) -> "FrameLocator" :
0 commit comments