Skip to content

Commit 97c6490

Browse files
authored
chore: remove layout locators, roll to 1.22.0 (microsoft#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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy