Skip to content

Commit 97c6490

Browse files
authored
chore: remove layout locators, roll to 1.22.0 (#1300)
Partial revert of ed13a53 Ports the following changes: - [x] microsoft/playwright@0e28553 (feat(locators): remove layout locators (#14129))
1 parent ed13a53 commit 97c6490

File tree

8 files changed

+35
-731
lines changed

8 files changed

+35
-731
lines changed

playwright/_impl/_frame.py

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -499,27 +499,9 @@ async def fill(
499499
await self._channel.send("fill", locals_to_params(locals()))
500500

501501
def locator(
502-
self,
503-
selector: str,
504-
has_text: Union[str, Pattern] = None,
505-
has: Locator = None,
506-
left_of: "Locator" = None,
507-
right_of: "Locator" = None,
508-
above: "Locator" = None,
509-
below: "Locator" = None,
510-
near: "Locator" = None,
502+
self, selector: str, has_text: Union[str, Pattern] = None, has: Locator = None
511503
) -> Locator:
512-
return Locator(
513-
self,
514-
selector,
515-
has_text=has_text,
516-
has=has,
517-
left_of=left_of,
518-
right_of=right_of,
519-
above=above,
520-
below=below,
521-
near=near,
522-
)
504+
return Locator(self, selector, has_text=has_text, has=has)
523505

524506
def frame_locator(self, selector: str) -> FrameLocator:
525507
return FrameLocator(self, selector)

playwright/_impl/_locator.py

Lines changed: 5 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
Pattern,
2727
TypeVar,
2828
Union,
29-
cast,
3029
)
3130

3231
from 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":

playwright/_impl/_page.py

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -712,22 +712,8 @@ def locator(
712712
selector: str,
713713
has_text: Union[str, Pattern] = None,
714714
has: "Locator" = None,
715-
left_of: "Locator" = None,
716-
right_of: "Locator" = None,
717-
above: "Locator" = None,
718-
below: "Locator" = None,
719-
near: "Locator" = None,
720715
) -> "Locator":
721-
return self._main_frame.locator(
722-
selector,
723-
has_text=has_text,
724-
has=has,
725-
left_of=left_of,
726-
right_of=right_of,
727-
above=above,
728-
below=below,
729-
near=near,
730-
)
716+
return self._main_frame.locator(selector, has_text=has_text, has=has)
731717

732718
def frame_locator(self, selector: str) -> "FrameLocator":
733719
return self.main_frame.frame_locator(selector)

0 commit comments

Comments
 (0)