Skip to content

Commit

Permalink
chore: remove layout locators, roll to 1.22.0 (#1300)
Browse files Browse the repository at this point in the history
Partial revert of ed13a53

Ports the following changes:
- [x] microsoft/playwright@0e28553 (feat(locators): remove layout locators (#14129))
  • Loading branch information
rwoll committed May 13, 2022
1 parent ed13a53 commit 97c6490
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 731 deletions.
22 changes: 2 additions & 20 deletions playwright/_impl/_frame.py
Expand Up @@ -499,27 +499,9 @@ async def fill(
await self._channel.send("fill", locals_to_params(locals()))

def locator(
self,
selector: str,
has_text: Union[str, Pattern] = None,
has: Locator = None,
left_of: "Locator" = None,
right_of: "Locator" = None,
above: "Locator" = None,
below: "Locator" = None,
near: "Locator" = None,
self, selector: str, has_text: Union[str, Pattern] = None, has: Locator = None
) -> Locator:
return Locator(
self,
selector,
has_text=has_text,
has=has,
left_of=left_of,
right_of=right_of,
above=above,
below=below,
near=near,
)
return Locator(self, selector, has_text=has_text, has=has)

def frame_locator(self, selector: str) -> FrameLocator:
return FrameLocator(self, selector)
Expand Down
58 changes: 5 additions & 53 deletions playwright/_impl/_locator.py
Expand Up @@ -26,7 +26,6 @@
Pattern,
TypeVar,
Union,
cast,
)

from playwright._impl._api_structures import (
Expand Down Expand Up @@ -67,13 +66,7 @@ def __init__(
selector: str,
has_text: Union[str, Pattern] = None,
has: "Locator" = None,
left_of: "Locator" = None,
right_of: "Locator" = None,
above: "Locator" = None,
below: "Locator" = None,
near: "Locator" = None,
) -> None:
_params = locals()
self._frame = frame
self._selector = selector
self._loop = frame._loop
Expand All @@ -88,18 +81,10 @@ def __init__(
escaped = escape_with_quotes(has_text, '"')
self._selector += f" >> :scope:has-text({escaped})"

for inner in ["has", "left_of", "right_of", "above", "below", "near"]:
locator: Optional["Locator"] = cast("Locator", _params.get(inner))
if not locator:
continue
if locator._frame != frame:
raise Error(f'Inner "{inner}" locator must belong to the same frame.')
engine_name = inner
if engine_name == "left_of":
engine_name = "left-of"
elif engine_name == "right_of":
engine_name = "right-of"
self._selector += f" >> {engine_name}=" + json.dumps(locator._selector)
if has:
if has._frame != frame:
raise Error('Inner "has" locator must belong to the same frame.')
self._selector += " >> has=" + json.dumps(has._selector)

def __repr__(self) -> str:
return f"<Locator frame={self._frame!r} selector={self._selector!r}>"
Expand Down Expand Up @@ -215,22 +200,12 @@ def locator(
selector: str,
has_text: Union[str, Pattern] = None,
has: "Locator" = None,
left_of: "Locator" = None,
right_of: "Locator" = None,
above: "Locator" = None,
below: "Locator" = None,
near: "Locator" = None,
) -> "Locator":
return Locator(
self._frame,
f"{self._selector} >> {selector}",
has_text=has_text,
has=has,
left_of=left_of,
right_of=right_of,
above=above,
below=below,
near=near,
)

def frame_locator(self, selector: str) -> "FrameLocator":
Expand Down Expand Up @@ -265,22 +240,12 @@ def filter(
self,
has_text: Union[str, Pattern] = None,
has: "Locator" = None,
left_of: "Locator" = None,
right_of: "Locator" = None,
above: "Locator" = None,
below: "Locator" = None,
near: "Locator" = None,
) -> "Locator":
return Locator(
self._frame,
self._selector,
has_text=has_text,
has=has,
left_of=left_of,
right_of=right_of,
above=above,
below=below,
near=near,
)

async def focus(self, timeout: float = None) -> None:
Expand Down Expand Up @@ -612,26 +577,13 @@ def __init__(self, frame: "Frame", frame_selector: str) -> None:
self._frame_selector = frame_selector

def locator(
self,
selector: str,
has_text: Union[str, Pattern] = None,
has: "Locator" = None,
left_of: "Locator" = None,
right_of: "Locator" = None,
above: "Locator" = None,
below: "Locator" = None,
near: "Locator" = None,
self, selector: str, has_text: Union[str, Pattern] = None, has: "Locator" = None
) -> Locator:
return Locator(
self._frame,
f"{self._frame_selector} >> control=enter-frame >> {selector}",
has_text=has_text,
has=has,
left_of=left_of,
right_of=right_of,
above=above,
below=below,
near=near,
)

def frame_locator(self, selector: str) -> "FrameLocator":
Expand Down
16 changes: 1 addition & 15 deletions playwright/_impl/_page.py
Expand Up @@ -712,22 +712,8 @@ def locator(
selector: str,
has_text: Union[str, Pattern] = None,
has: "Locator" = None,
left_of: "Locator" = None,
right_of: "Locator" = None,
above: "Locator" = None,
below: "Locator" = None,
near: "Locator" = None,
) -> "Locator":
return self._main_frame.locator(
selector,
has_text=has_text,
has=has,
left_of=left_of,
right_of=right_of,
above=above,
below=below,
near=near,
)
return self._main_frame.locator(selector, has_text=has_text, has=has)

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

0 comments on commit 97c6490

Please sign in to comment.