Interface Locator
-
public interface LocatorLocators are the central piece of Playwright's auto-waiting and retry-ability. In a nutshell, locators represent a way to find element(s) on the page at any moment. A locator can be created with thePage.locator()method.
-
-
Nested Class Summary
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description List<Locator>all()When the locator points to a list of elements, this returns an array of locators, pointing to their respective elements.List<String>allInnerTexts()Returns an array ofnode.innerTextvalues for all matching nodes.List<String>allTextContents()Returns an array ofnode.textContentvalues for all matching nodes.Locatorand(Locator locator)Creates a locator that matches both this locator and the argument locator.default voidblur()Calls blur on the element.voidblur(Locator.BlurOptions options)Calls blur on the element.default BoundingBoxboundingBox()This method returns the bounding box of the element matching the locator, ornullif the element is not visible.BoundingBoxboundingBox(Locator.BoundingBoxOptions options)This method returns the bounding box of the element matching the locator, ornullif the element is not visible.default voidcheck()Ensure that checkbox or radio element is checked.voidcheck(Locator.CheckOptions options)Ensure that checkbox or radio element is checked.default voidclear()Clear the input field.voidclear(Locator.ClearOptions options)Clear the input field.default voidclick()Click an element.voidclick(Locator.ClickOptions options)Click an element.FrameLocatorcontentFrame()Returns aFrameLocatorobject pointing to the sameiframeas this locator.intcount()Returns the number of elements matching the locator.default voiddblclick()Double-click an element.voiddblclick(Locator.DblclickOptions options)Double-click an element.default voiddispatchEvent(String type)Programmatically dispatch an event on the matching element.default voiddispatchEvent(String type, Object eventInit)Programmatically dispatch an event on the matching element.voiddispatchEvent(String type, Object eventInit, Locator.DispatchEventOptions options)Programmatically dispatch an event on the matching element.default voiddragTo(Locator target)Drag the source element towards the target element and drop it.voiddragTo(Locator target, Locator.DragToOptions options)Drag the source element towards the target element and drop it.default ElementHandleelementHandle()Resolves given locator to the first matching DOM element.ElementHandleelementHandle(Locator.ElementHandleOptions options)Resolves given locator to the first matching DOM element.List<ElementHandle>elementHandles()Resolves given locator to all matching DOM elements.default Objectevaluate(String expression)Execute JavaScript code in the page, taking the matching element as an argument.default Objectevaluate(String expression, Object arg)Execute JavaScript code in the page, taking the matching element as an argument.Objectevaluate(String expression, Object arg, Locator.EvaluateOptions options)Execute JavaScript code in the page, taking the matching element as an argument.default ObjectevaluateAll(String expression)Execute JavaScript code in the page, taking all matching elements as an argument.ObjectevaluateAll(String expression, Object arg)Execute JavaScript code in the page, taking all matching elements as an argument.default JSHandleevaluateHandle(String expression)Execute JavaScript code in the page, taking the matching element as an argument, and return aJSHandlewith the result.default JSHandleevaluateHandle(String expression, Object arg)Execute JavaScript code in the page, taking the matching element as an argument, and return aJSHandlewith the result.JSHandleevaluateHandle(String expression, Object arg, Locator.EvaluateHandleOptions options)Execute JavaScript code in the page, taking the matching element as an argument, and return aJSHandlewith the result.default voidfill(String value)Set a value to the input field.voidfill(String value, Locator.FillOptions options)Set a value to the input field.default Locatorfilter()This method narrows existing locator according to the options, for example filters by text.Locatorfilter(Locator.FilterOptions options)This method narrows existing locator according to the options, for example filters by text.Locatorfirst()Returns locator to the first matching element.default voidfocus()Calls focus on the matching element.voidfocus(Locator.FocusOptions options)Calls focus on the matching element.FrameLocatorframeLocator(String selector)When working with iframes, you can create a frame locator that will enter the iframe and allow locating elements in that iframe:default StringgetAttribute(String name)Returns the matching element's attribute value.StringgetAttribute(String name, Locator.GetAttributeOptions options)Returns the matching element's attribute value.default LocatorgetByAltText(String text)Allows locating elements by their alt text.LocatorgetByAltText(String text, Locator.GetByAltTextOptions options)Allows locating elements by their alt text.default LocatorgetByAltText(Pattern text)Allows locating elements by their alt text.LocatorgetByAltText(Pattern text, Locator.GetByAltTextOptions options)Allows locating elements by their alt text.default LocatorgetByLabel(String text)Allows locating input elements by the text of the associated<label>oraria-labelledbyelement, or by thearia-labelattribute.LocatorgetByLabel(String text, Locator.GetByLabelOptions options)Allows locating input elements by the text of the associated<label>oraria-labelledbyelement, or by thearia-labelattribute.default LocatorgetByLabel(Pattern text)Allows locating input elements by the text of the associated<label>oraria-labelledbyelement, or by thearia-labelattribute.LocatorgetByLabel(Pattern text, Locator.GetByLabelOptions options)Allows locating input elements by the text of the associated<label>oraria-labelledbyelement, or by thearia-labelattribute.default LocatorgetByPlaceholder(String text)Allows locating input elements by the placeholder text.LocatorgetByPlaceholder(String text, Locator.GetByPlaceholderOptions options)Allows locating input elements by the placeholder text.default LocatorgetByPlaceholder(Pattern text)Allows locating input elements by the placeholder text.LocatorgetByPlaceholder(Pattern text, Locator.GetByPlaceholderOptions options)Allows locating input elements by the placeholder text.default LocatorgetByRole(AriaRole role)LocatorgetByRole(AriaRole role, Locator.GetByRoleOptions options)LocatorgetByTestId(String testId)Locate element by the test id.LocatorgetByTestId(Pattern testId)Locate element by the test id.default LocatorgetByText(String text)Allows locating elements that contain given text.LocatorgetByText(String text, Locator.GetByTextOptions options)Allows locating elements that contain given text.default LocatorgetByText(Pattern text)Allows locating elements that contain given text.LocatorgetByText(Pattern text, Locator.GetByTextOptions options)Allows locating elements that contain given text.default LocatorgetByTitle(String text)Allows locating elements by their title attribute.LocatorgetByTitle(String text, Locator.GetByTitleOptions options)Allows locating elements by their title attribute.default LocatorgetByTitle(Pattern text)Allows locating elements by their title attribute.LocatorgetByTitle(Pattern text, Locator.GetByTitleOptions options)Allows locating elements by their title attribute.voidhighlight()Highlight the corresponding element(s) on the screen.default voidhover()Hover over the matching element.voidhover(Locator.HoverOptions options)Hover over the matching element.default StringinnerHTML()Returns theelement.innerHTML.StringinnerHTML(Locator.InnerHTMLOptions options)Returns theelement.innerHTML.default StringinnerText()Returns theelement.innerText.StringinnerText(Locator.InnerTextOptions options)Returns theelement.innerText.default StringinputValue()Returns the value for the matching<input>or<textarea>or<select>element.StringinputValue(Locator.InputValueOptions options)Returns the value for the matching<input>or<textarea>or<select>element.default booleanisChecked()Returns whether the element is checked.booleanisChecked(Locator.IsCheckedOptions options)Returns whether the element is checked.default booleanisDisabled()Returns whether the element is disabled, the opposite of enabled.booleanisDisabled(Locator.IsDisabledOptions options)Returns whether the element is disabled, the opposite of enabled.default booleanisEditable()Returns whether the element is editable.booleanisEditable(Locator.IsEditableOptions options)Returns whether the element is editable.default booleanisEnabled()Returns whether the element is enabled.booleanisEnabled(Locator.IsEnabledOptions options)Returns whether the element is enabled.default booleanisHidden()Returns whether the element is hidden, the opposite of visible.booleanisHidden(Locator.IsHiddenOptions options)Returns whether the element is hidden, the opposite of visible.default booleanisVisible()Returns whether the element is visible.booleanisVisible(Locator.IsVisibleOptions options)Returns whether the element is visible.Locatorlast()Returns locator to the last matching element.default Locatorlocator(Locator selectorOrLocator)The method finds an element matching the specified selector in the locator's subtree.Locatorlocator(Locator selectorOrLocator, Locator.LocatorOptions options)The method finds an element matching the specified selector in the locator's subtree.default Locatorlocator(String selectorOrLocator)The method finds an element matching the specified selector in the locator's subtree.Locatorlocator(String selectorOrLocator, Locator.LocatorOptions options)The method finds an element matching the specified selector in the locator's subtree.Locatornth(int index)Returns locator to the n-th matching element.Locatoror(Locator locator)Creates a locator that matches either of the two locators.Pagepage()A page this locator belongs to.default voidpress(String key)Focuses the matching element and presses a combination of the keys.voidpress(String key, Locator.PressOptions options)Focuses the matching element and presses a combination of the keys.default voidpressSequentially(String text)NOTE: In most cases, you should useLocator.fill()instead.voidpressSequentially(String text, Locator.PressSequentiallyOptions options)NOTE: In most cases, you should useLocator.fill()instead.default byte[]screenshot()Take a screenshot of the element matching the locator.byte[]screenshot(Locator.ScreenshotOptions options)Take a screenshot of the element matching the locator.default voidscrollIntoViewIfNeeded()This method waits for actionability checks, then tries to scroll element into view, unless it is completely visible as defined by IntersectionObserver'sratio.voidscrollIntoViewIfNeeded(Locator.ScrollIntoViewIfNeededOptions options)This method waits for actionability checks, then tries to scroll element into view, unless it is completely visible as defined by IntersectionObserver'sratio.default List<String>selectOption(ElementHandle values)Selects option or options in<select>.default List<String>selectOption(ElementHandle[] values)Selects option or options in<select>.List<String>selectOption(ElementHandle[] values, Locator.SelectOptionOptions options)Selects option or options in<select>.List<String>selectOption(ElementHandle values, Locator.SelectOptionOptions options)Selects option or options in<select>.default List<String>selectOption(SelectOption values)Selects option or options in<select>.default List<String>selectOption(SelectOption[] values)Selects option or options in<select>.List<String>selectOption(SelectOption[] values, Locator.SelectOptionOptions options)Selects option or options in<select>.List<String>selectOption(SelectOption values, Locator.SelectOptionOptions options)Selects option or options in<select>.default List<String>selectOption(String values)Selects option or options in<select>.default List<String>selectOption(String[] values)Selects option or options in<select>.List<String>selectOption(String[] values, Locator.SelectOptionOptions options)Selects option or options in<select>.List<String>selectOption(String values, Locator.SelectOptionOptions options)Selects option or options in<select>.default voidselectText()This method waits for actionability checks, then focuses the element and selects all its text content.voidselectText(Locator.SelectTextOptions options)This method waits for actionability checks, then focuses the element and selects all its text content.default voidsetChecked(boolean checked)Set the state of a checkbox or a radio element.voidsetChecked(boolean checked, Locator.SetCheckedOptions options)Set the state of a checkbox or a radio element.default voidsetInputFiles(FilePayload files)Upload file or multiple files into<input type=file>.default voidsetInputFiles(FilePayload[] files)Upload file or multiple files into<input type=file>.voidsetInputFiles(FilePayload[] files, Locator.SetInputFilesOptions options)Upload file or multiple files into<input type=file>.voidsetInputFiles(FilePayload files, Locator.SetInputFilesOptions options)Upload file or multiple files into<input type=file>.default voidsetInputFiles(Path files)Upload file or multiple files into<input type=file>.default voidsetInputFiles(Path[] files)Upload file or multiple files into<input type=file>.voidsetInputFiles(Path[] files, Locator.SetInputFilesOptions options)Upload file or multiple files into<input type=file>.voidsetInputFiles(Path files, Locator.SetInputFilesOptions options)Upload file or multiple files into<input type=file>.default voidtap()Perform a tap gesture on the element matching the locator.voidtap(Locator.TapOptions options)Perform a tap gesture on the element matching the locator.default StringtextContent()Returns thenode.textContent.StringtextContent(Locator.TextContentOptions options)Returns thenode.textContent.default voidtype(String text)Deprecated.In most cases, you should useLocator.fill()instead.voidtype(String text, Locator.TypeOptions options)Deprecated.In most cases, you should useLocator.fill()instead.default voiduncheck()Ensure that checkbox or radio element is unchecked.voiduncheck(Locator.UncheckOptions options)Ensure that checkbox or radio element is unchecked.default voidwaitFor()Returns when element specified by locator satisfies thestateoption.voidwaitFor(Locator.WaitForOptions options)Returns when element specified by locator satisfies thestateoption.
-
-
-
Method Detail
-
all
List<Locator> all()
When the locator points to a list of elements, this returns an array of locators, pointing to their respective elements.NOTE:
Locator.all()does not wait for elements to match the locator, and instead immediately returns whatever is present in the page. When the list of elements changes dynamically,Locator.all()will produce unpredictable and flaky results. When the list of elements is stable, but loaded dynamically, wait for the full list to finish loading before callingLocator.all().Usage
for (Locator li : page.getByRole('listitem').all()) li.click();- Since:
- v1.29
-
allInnerTexts
List<String> allInnerTexts()
Returns an array ofnode.innerTextvalues for all matching nodes.NOTE: If you need to assert text on the page, prefer
LocatorAssertions.hasText()withuseInnerTextoption to avoid flakiness. See assertions guide for more details.Usage
String[] texts = page.getByRole(AriaRole.LINK).allInnerTexts();- Since:
- v1.14
-
allTextContents
List<String> allTextContents()
Returns an array ofnode.textContentvalues for all matching nodes.NOTE: If you need to assert text on the page, prefer
LocatorAssertions.hasText()to avoid flakiness. See assertions guide for more details.Usage
String[] texts = page.getByRole(AriaRole.LINK).allTextContents();- Since:
- v1.14
-
and
Locator and(Locator locator)
Creates a locator that matches both this locator and the argument locator.Usage
The following example finds a button with a specific title.
Locator button = page.getByRole(AriaRole.BUTTON).and(page.getByTitle("Subscribe"));- Parameters:
locator- Additional locator to match.- Since:
- v1.34
-
blur
default void blur()
Calls blur on the element.- Since:
- v1.28
-
blur
void blur(Locator.BlurOptions options)
Calls blur on the element.- Since:
- v1.28
-
boundingBox
default BoundingBox boundingBox()
This method returns the bounding box of the element matching the locator, ornullif the element is not visible. The bounding box is calculated relative to the main frame viewport - which is usually the same as the browser window.Details
Scrolling affects the returned bounding box, similarly to Element.getBoundingClientRect. That means
xand/orymay be negative.Elements from child frames return the bounding box relative to the main frame, unlike the Element.getBoundingClientRect.
Assuming the page is static, it is safe to use bounding box coordinates to perform input. For example, the following snippet should click the center of the element.
Usage
BoundingBox box = page.getByRole(AriaRole.BUTTON).boundingBox(); page.mouse().click(box.x + box.width / 2, box.y + box.height / 2);- Since:
- v1.14
-
boundingBox
BoundingBox boundingBox(Locator.BoundingBoxOptions options)
This method returns the bounding box of the element matching the locator, ornullif the element is not visible. The bounding box is calculated relative to the main frame viewport - which is usually the same as the browser window.Details
Scrolling affects the returned bounding box, similarly to Element.getBoundingClientRect. That means
xand/orymay be negative.Elements from child frames return the bounding box relative to the main frame, unlike the Element.getBoundingClientRect.
Assuming the page is static, it is safe to use bounding box coordinates to perform input. For example, the following snippet should click the center of the element.
Usage
BoundingBox box = page.getByRole(AriaRole.BUTTON).boundingBox(); page.mouse().click(box.x + box.width / 2, box.y + box.height / 2);- Since:
- v1.14
-
check
default void check()
Ensure that checkbox or radio element is checked.Details
Performs the following steps:
- Ensure that element is a checkbox or a radio input. If not, this method throws. If the element is already checked, this method returns immediately.
- Wait for actionability checks on the element, unless
forceoption is set. - Scroll the element into view if needed.
- Use
Page.mouse()to click in the center of the element. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set. - Ensure that the element is now checked. If not, this method throws.
If the element is detached from the DOM at any moment during the action, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.Usage
page.getByRole(AriaRole.CHECKBOX).check();- Since:
- v1.14
-
check
void check(Locator.CheckOptions options)
Ensure that checkbox or radio element is checked.Details
Performs the following steps:
- Ensure that element is a checkbox or a radio input. If not, this method throws. If the element is already checked, this method returns immediately.
- Wait for actionability checks on the element, unless
forceoption is set. - Scroll the element into view if needed.
- Use
Page.mouse()to click in the center of the element. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set. - Ensure that the element is now checked. If not, this method throws.
If the element is detached from the DOM at any moment during the action, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.Usage
page.getByRole(AriaRole.CHECKBOX).check();- Since:
- v1.14
-
clear
default void clear()
Clear the input field.Details
This method waits for actionability checks, focuses the element, clears it and triggers an
inputevent after clearing.If the target element is not an
<input>,<textarea>or[contenteditable]element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be cleared instead.Usage
page.getByRole(AriaRole.TEXTBOX).clear();- Since:
- v1.28
-
clear
void clear(Locator.ClearOptions options)
Clear the input field.Details
This method waits for actionability checks, focuses the element, clears it and triggers an
inputevent after clearing.If the target element is not an
<input>,<textarea>or[contenteditable]element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be cleared instead.Usage
page.getByRole(AriaRole.TEXTBOX).clear();- Since:
- v1.28
-
click
default void click()
Click an element.Details
This method clicks the element by performing the following steps:
- Wait for actionability checks on the element, unless
forceoption is set. - Scroll the element into view if needed.
- Use
Page.mouse()to click in the center of the element, or the specifiedposition. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set.
If the element is detached from the DOM at any moment during the action, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.Usage
Click a button:
page.getByRole(AriaRole.BUTTON).click();Shift-right-click at a specific position on a canvas:
page.locator("canvas").click(new Locator.ClickOptions() .setButton(MouseButton.RIGHT) .setModifiers(Arrays.asList(KeyboardModifier.SHIFT)) .setPosition(23, 32));- Since:
- v1.14
- Wait for actionability checks on the element, unless
-
click
void click(Locator.ClickOptions options)
Click an element.Details
This method clicks the element by performing the following steps:
- Wait for actionability checks on the element, unless
forceoption is set. - Scroll the element into view if needed.
- Use
Page.mouse()to click in the center of the element, or the specifiedposition. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set.
If the element is detached from the DOM at any moment during the action, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.Usage
Click a button:
page.getByRole(AriaRole.BUTTON).click();Shift-right-click at a specific position on a canvas:
page.locator("canvas").click(new Locator.ClickOptions() .setButton(MouseButton.RIGHT) .setModifiers(Arrays.asList(KeyboardModifier.SHIFT)) .setPosition(23, 32));- Since:
- v1.14
- Wait for actionability checks on the element, unless
-
count
int count()
Returns the number of elements matching the locator.NOTE: If you need to assert the number of elements on the page, prefer
LocatorAssertions.hasCount()to avoid flakiness. See assertions guide for more details.Usage
int count = page.getByRole(AriaRole.LISTITEM).count();- Since:
- v1.14
-
dblclick
default void dblclick()
Double-click an element.Details
This method double clicks the element by performing the following steps:
- Wait for actionability checks on the element, unless
forceoption is set. - Scroll the element into view if needed.
- Use
Page.mouse()to double click in the center of the element, or the specifiedposition. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set. Note that if the first click of thedblclick()triggers a navigation event, this method will throw.
If the element is detached from the DOM at any moment during the action, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.NOTE:
element.dblclick()dispatches twoclickevents and a singledblclickevent.- Since:
- v1.14
- Wait for actionability checks on the element, unless
-
dblclick
void dblclick(Locator.DblclickOptions options)
Double-click an element.Details
This method double clicks the element by performing the following steps:
- Wait for actionability checks on the element, unless
forceoption is set. - Scroll the element into view if needed.
- Use
Page.mouse()to double click in the center of the element, or the specifiedposition. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set. Note that if the first click of thedblclick()triggers a navigation event, this method will throw.
If the element is detached from the DOM at any moment during the action, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.NOTE:
element.dblclick()dispatches twoclickevents and a singledblclickevent.- Since:
- v1.14
- Wait for actionability checks on the element, unless
-
dispatchEvent
default void dispatchEvent(String type, Object eventInit)
Programmatically dispatch an event on the matching element.Usage
locator.dispatchEvent("click");Details
The snippet above dispatches the
clickevent on the element. Regardless of the visibility state of the element,clickis dispatched. This is equivalent to calling element.click().Under the hood, it creates an instance of an event based on the given
type, initializes it witheventInitproperties and dispatches it on the element. Events arecomposed,cancelableand bubble by default.Since
eventInitis event-specific, please refer to the events documentation for the lists of initial properties:- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
You can also specify
JSHandleas the property value if you want live objects to be passed into the event:// Note you can only create DataTransfer in Chromium and Firefox JSHandle dataTransfer = page.evaluateHandle("() => new DataTransfer()"); Map<String, Object> arg = new HashMap<>(); arg.put("dataTransfer", dataTransfer); locator.dispatchEvent("dragstart", arg);- Parameters:
type- DOM event type:"click","dragstart", etc.eventInit- Optional event-specific initialization properties.- Since:
- v1.14
-
dispatchEvent
default void dispatchEvent(String type)
Programmatically dispatch an event on the matching element.Usage
locator.dispatchEvent("click");Details
The snippet above dispatches the
clickevent on the element. Regardless of the visibility state of the element,clickis dispatched. This is equivalent to calling element.click().Under the hood, it creates an instance of an event based on the given
type, initializes it witheventInitproperties and dispatches it on the element. Events arecomposed,cancelableand bubble by default.Since
eventInitis event-specific, please refer to the events documentation for the lists of initial properties:- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
You can also specify
JSHandleas the property value if you want live objects to be passed into the event:// Note you can only create DataTransfer in Chromium and Firefox JSHandle dataTransfer = page.evaluateHandle("() => new DataTransfer()"); Map<String, Object> arg = new HashMap<>(); arg.put("dataTransfer", dataTransfer); locator.dispatchEvent("dragstart", arg);- Parameters:
type- DOM event type:"click","dragstart", etc.- Since:
- v1.14
-
dispatchEvent
void dispatchEvent(String type, Object eventInit, Locator.DispatchEventOptions options)
Programmatically dispatch an event on the matching element.Usage
locator.dispatchEvent("click");Details
The snippet above dispatches the
clickevent on the element. Regardless of the visibility state of the element,clickis dispatched. This is equivalent to calling element.click().Under the hood, it creates an instance of an event based on the given
type, initializes it witheventInitproperties and dispatches it on the element. Events arecomposed,cancelableand bubble by default.Since
eventInitis event-specific, please refer to the events documentation for the lists of initial properties:- DeviceMotionEvent
- DeviceOrientationEvent
- DragEvent
- Event
- FocusEvent
- KeyboardEvent
- MouseEvent
- PointerEvent
- TouchEvent
- WheelEvent
You can also specify
JSHandleas the property value if you want live objects to be passed into the event:// Note you can only create DataTransfer in Chromium and Firefox JSHandle dataTransfer = page.evaluateHandle("() => new DataTransfer()"); Map<String, Object> arg = new HashMap<>(); arg.put("dataTransfer", dataTransfer); locator.dispatchEvent("dragstart", arg);- Parameters:
type- DOM event type:"click","dragstart", etc.eventInit- Optional event-specific initialization properties.- Since:
- v1.14
-
dragTo
default void dragTo(Locator target)
Drag the source element towards the target element and drop it.Details
This method drags the locator to another target locator or target position. It will first move to the source element, perform a
mousedown, then move to the target element or position and perform amouseup.Usage
Locator source = page.locator("#source"); Locator target = page.locator("#target"); source.dragTo(target); // or specify exact positions relative to the top-left corners of the elements: source.dragTo(target, new Locator.DragToOptions() .setSourcePosition(34, 7).setTargetPosition(10, 20));- Parameters:
target- Locator of the element to drag to.- Since:
- v1.18
-
dragTo
void dragTo(Locator target, Locator.DragToOptions options)
Drag the source element towards the target element and drop it.Details
This method drags the locator to another target locator or target position. It will first move to the source element, perform a
mousedown, then move to the target element or position and perform amouseup.Usage
Locator source = page.locator("#source"); Locator target = page.locator("#target"); source.dragTo(target); // or specify exact positions relative to the top-left corners of the elements: source.dragTo(target, new Locator.DragToOptions() .setSourcePosition(34, 7).setTargetPosition(10, 20));- Parameters:
target- Locator of the element to drag to.- Since:
- v1.18
-
elementHandle
default ElementHandle elementHandle()
Resolves given locator to the first matching DOM element. If there are no matching elements, waits for one. If multiple elements match the locator, throws.- Since:
- v1.14
-
elementHandle
ElementHandle elementHandle(Locator.ElementHandleOptions options)
Resolves given locator to the first matching DOM element. If there are no matching elements, waits for one. If multiple elements match the locator, throws.- Since:
- v1.14
-
elementHandles
List<ElementHandle> elementHandles()
Resolves given locator to all matching DOM elements. If there are no matching elements, returns an empty list.- Since:
- v1.14
-
contentFrame
FrameLocator contentFrame()
Returns aFrameLocatorobject pointing to the sameiframeas this locator.Useful when you have a
Locatorobject obtained somewhere, and later on would like to interact with the content inside the frame.For a reverse operation, use
FrameLocator.owner().Usage
Locator locator = page.locator("iframe[name=\"embedded\"]"); // ... FrameLocator frameLocator = locator.contentFrame(); frameLocator.getByRole(AriaRole.BUTTON).click();- Since:
- v1.43
-
evaluate
default Object evaluate(String expression, Object arg)
Execute JavaScript code in the page, taking the matching element as an argument.Details
Returns the return value of
expression, called with the matching element as a first argument, andargas a second argument.If
expressionreturns a Promise, this method will wait for the promise to resolve and return its value.If
expressionthrows or rejects, this method throws.Usage
Locator tweets = page.locator(".tweet .retweets"); assertEquals("10 retweets", tweets.evaluate("node => node.innerText"));- Parameters:
expression- JavaScript expression to be evaluated in the browser context. If the expression evaluates to a function, the function is automatically invoked.arg- Optional argument to pass toexpression.- Since:
- v1.14
-
evaluate
default Object evaluate(String expression)
Execute JavaScript code in the page, taking the matching element as an argument.Details
Returns the return value of
expression, called with the matching element as a first argument, andargas a second argument.If
expressionreturns a Promise, this method will wait for the promise to resolve and return its value.If
expressionthrows or rejects, this method throws.Usage
Locator tweets = page.locator(".tweet .retweets"); assertEquals("10 retweets", tweets.evaluate("node => node.innerText"));- Parameters:
expression- JavaScript expression to be evaluated in the browser context. If the expression evaluates to a function, the function is automatically invoked.- Since:
- v1.14
-
evaluate
Object evaluate(String expression, Object arg, Locator.EvaluateOptions options)
Execute JavaScript code in the page, taking the matching element as an argument.Details
Returns the return value of
expression, called with the matching element as a first argument, andargas a second argument.If
expressionreturns a Promise, this method will wait for the promise to resolve and return its value.If
expressionthrows or rejects, this method throws.Usage
Locator tweets = page.locator(".tweet .retweets"); assertEquals("10 retweets", tweets.evaluate("node => node.innerText"));- Parameters:
expression- JavaScript expression to be evaluated in the browser context. If the expression evaluates to a function, the function is automatically invoked.arg- Optional argument to pass toexpression.- Since:
- v1.14
-
evaluateAll
default Object evaluateAll(String expression)
Execute JavaScript code in the page, taking all matching elements as an argument.Details
Returns the return value of
expression, called with an array of all matching elements as a first argument, andargas a second argument.If
expressionreturns a Promise, this method will wait for the promise to resolve and return its value.If
expressionthrows or rejects, this method throws.Usage
Locator locator = page.locator("div"); boolean moreThanTen = (boolean) locator.evaluateAll("(divs, min) => divs.length > min", 10);- Parameters:
expression- JavaScript expression to be evaluated in the browser context. If the expression evaluates to a function, the function is automatically invoked.- Since:
- v1.14
-
evaluateAll
Object evaluateAll(String expression, Object arg)
Execute JavaScript code in the page, taking all matching elements as an argument.Details
Returns the return value of
expression, called with an array of all matching elements as a first argument, andargas a second argument.If
expressionreturns a Promise, this method will wait for the promise to resolve and return its value.If
expressionthrows or rejects, this method throws.Usage
Locator locator = page.locator("div"); boolean moreThanTen = (boolean) locator.evaluateAll("(divs, min) => divs.length > min", 10);- Parameters:
expression- JavaScript expression to be evaluated in the browser context. If the expression evaluates to a function, the function is automatically invoked.arg- Optional argument to pass toexpression.- Since:
- v1.14
-
evaluateHandle
default JSHandle evaluateHandle(String expression, Object arg)
Execute JavaScript code in the page, taking the matching element as an argument, and return aJSHandlewith the result.Details
Returns the return value of
expressionas aJSHandle, called with the matching element as a first argument, andargas a second argument.The only difference between
Locator.evaluate()andLocator.evaluateHandle()is thatLocator.evaluateHandle()returnsJSHandle.If
expressionreturns a Promise, this method will wait for the promise to resolve and return its value.If
expressionthrows or rejects, this method throws.See
Page.evaluateHandle()for more details.- Parameters:
expression- JavaScript expression to be evaluated in the browser context. If the expression evaluates to a function, the function is automatically invoked.arg- Optional argument to pass toexpression.- Since:
- v1.14
-
evaluateHandle
default JSHandle evaluateHandle(String expression)
Execute JavaScript code in the page, taking the matching element as an argument, and return aJSHandlewith the result.Details
Returns the return value of
expressionas aJSHandle, called with the matching element as a first argument, andargas a second argument.The only difference between
Locator.evaluate()andLocator.evaluateHandle()is thatLocator.evaluateHandle()returnsJSHandle.If
expressionreturns a Promise, this method will wait for the promise to resolve and return its value.If
expressionthrows or rejects, this method throws.See
Page.evaluateHandle()for more details.- Parameters:
expression- JavaScript expression to be evaluated in the browser context. If the expression evaluates to a function, the function is automatically invoked.- Since:
- v1.14
-
evaluateHandle
JSHandle evaluateHandle(String expression, Object arg, Locator.EvaluateHandleOptions options)
Execute JavaScript code in the page, taking the matching element as an argument, and return aJSHandlewith the result.Details
Returns the return value of
expressionas aJSHandle, called with the matching element as a first argument, andargas a second argument.The only difference between
Locator.evaluate()andLocator.evaluateHandle()is thatLocator.evaluateHandle()returnsJSHandle.If
expressionreturns a Promise, this method will wait for the promise to resolve and return its value.If
expressionthrows or rejects, this method throws.See
Page.evaluateHandle()for more details.- Parameters:
expression- JavaScript expression to be evaluated in the browser context. If the expression evaluates to a function, the function is automatically invoked.arg- Optional argument to pass toexpression.- Since:
- v1.14
-
fill
default void fill(String value)
Set a value to the input field.Usage
page.getByRole(AriaRole.TEXTBOX).fill("example value");Details
This method waits for actionability checks, focuses the element, fills it and triggers an
inputevent after filling. Note that you can pass an empty string to clear the input field.If the target element is not an
<input>,<textarea>or[contenteditable]element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be filled instead.To send fine-grained keyboard events, use
Locator.pressSequentially().- Parameters:
value- Value to set for the<input>,<textarea>or[contenteditable]element.- Since:
- v1.14
-
fill
void fill(String value, Locator.FillOptions options)
Set a value to the input field.Usage
page.getByRole(AriaRole.TEXTBOX).fill("example value");Details
This method waits for actionability checks, focuses the element, fills it and triggers an
inputevent after filling. Note that you can pass an empty string to clear the input field.If the target element is not an
<input>,<textarea>or[contenteditable]element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be filled instead.To send fine-grained keyboard events, use
Locator.pressSequentially().- Parameters:
value- Value to set for the<input>,<textarea>or[contenteditable]element.- Since:
- v1.14
-
filter
default Locator filter()
This method narrows existing locator according to the options, for example filters by text. It can be chained to filter multiple times.Usage
Locator rowLocator = page.locator("tr"); // ... rowLocator .filter(new Locator.FilterOptions().setHasText("text in column 1")) .filter(new Locator.FilterOptions().setHas( page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("column 2 button")) )) .screenshot();- Since:
- v1.22
-
filter
Locator filter(Locator.FilterOptions options)
This method narrows existing locator according to the options, for example filters by text. It can be chained to filter multiple times.Usage
Locator rowLocator = page.locator("tr"); // ... rowLocator .filter(new Locator.FilterOptions().setHasText("text in column 1")) .filter(new Locator.FilterOptions().setHas( page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("column 2 button")) )) .screenshot();- Since:
- v1.22
-
first
Locator first()
Returns locator to the first matching element.- Since:
- v1.14
-
focus
default void focus()
Calls focus on the matching element.- Since:
- v1.14
-
focus
void focus(Locator.FocusOptions options)
Calls focus on the matching element.- Since:
- v1.14
-
frameLocator
FrameLocator frameLocator(String selector)
When working with iframes, you can create a frame locator that will enter the iframe and allow locating elements in that iframe:Usage
Locator locator = page.frameLocator("iframe").getByText("Submit"); locator.click();- Parameters:
selector- A selector to use when resolving DOM element.- Since:
- v1.17
-
getAttribute
default String getAttribute(String name)
Returns the matching element's attribute value.NOTE: If you need to assert an element's attribute, prefer
LocatorAssertions.hasAttribute()to avoid flakiness. See assertions guide for more details.- Parameters:
name- Attribute name to get the value for.- Since:
- v1.14
-
getAttribute
String getAttribute(String name, Locator.GetAttributeOptions options)
Returns the matching element's attribute value.NOTE: If you need to assert an element's attribute, prefer
LocatorAssertions.hasAttribute()to avoid flakiness. See assertions guide for more details.- Parameters:
name- Attribute name to get the value for.- Since:
- v1.14
-
getByAltText
default Locator getByAltText(String text)
Allows locating elements by their alt text.Usage
For example, this method will find the image by alt text "Playwright logo":
page.getByAltText("Playwright logo").click();- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByAltText
Locator getByAltText(String text, Locator.GetByAltTextOptions options)
Allows locating elements by their alt text.Usage
For example, this method will find the image by alt text "Playwright logo":
page.getByAltText("Playwright logo").click();- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByAltText
default Locator getByAltText(Pattern text)
Allows locating elements by their alt text.Usage
For example, this method will find the image by alt text "Playwright logo":
page.getByAltText("Playwright logo").click();- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByAltText
Locator getByAltText(Pattern text, Locator.GetByAltTextOptions options)
Allows locating elements by their alt text.Usage
For example, this method will find the image by alt text "Playwright logo":
page.getByAltText("Playwright logo").click();- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByLabel
default Locator getByLabel(String text)
Allows locating input elements by the text of the associated<label>oraria-labelledbyelement, or by thearia-labelattribute.Usage
For example, this method will find inputs by label "Username" and "Password" in the following DOM:
page.getByLabel("Username").fill("john"); page.getByLabel("Password").fill("secret");- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByLabel
Locator getByLabel(String text, Locator.GetByLabelOptions options)
Allows locating input elements by the text of the associated<label>oraria-labelledbyelement, or by thearia-labelattribute.Usage
For example, this method will find inputs by label "Username" and "Password" in the following DOM:
page.getByLabel("Username").fill("john"); page.getByLabel("Password").fill("secret");- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByLabel
default Locator getByLabel(Pattern text)
Allows locating input elements by the text of the associated<label>oraria-labelledbyelement, or by thearia-labelattribute.Usage
For example, this method will find inputs by label "Username" and "Password" in the following DOM:
page.getByLabel("Username").fill("john"); page.getByLabel("Password").fill("secret");- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByLabel
Locator getByLabel(Pattern text, Locator.GetByLabelOptions options)
Allows locating input elements by the text of the associated<label>oraria-labelledbyelement, or by thearia-labelattribute.Usage
For example, this method will find inputs by label "Username" and "Password" in the following DOM:
page.getByLabel("Username").fill("john"); page.getByLabel("Password").fill("secret");- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByPlaceholder
default Locator getByPlaceholder(String text)
Allows locating input elements by the placeholder text.Usage
For example, consider the following DOM structure.
You can fill the input after locating it by the placeholder text:
page.getByPlaceholder("name@example.com").fill("playwright@microsoft.com");- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByPlaceholder
Locator getByPlaceholder(String text, Locator.GetByPlaceholderOptions options)
Allows locating input elements by the placeholder text.Usage
For example, consider the following DOM structure.
You can fill the input after locating it by the placeholder text:
page.getByPlaceholder("name@example.com").fill("playwright@microsoft.com");- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByPlaceholder
default Locator getByPlaceholder(Pattern text)
Allows locating input elements by the placeholder text.Usage
For example, consider the following DOM structure.
You can fill the input after locating it by the placeholder text:
page.getByPlaceholder("name@example.com").fill("playwright@microsoft.com");- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByPlaceholder
Locator getByPlaceholder(Pattern text, Locator.GetByPlaceholderOptions options)
Allows locating input elements by the placeholder text.Usage
For example, consider the following DOM structure.
You can fill the input after locating it by the placeholder text:
page.getByPlaceholder("name@example.com").fill("playwright@microsoft.com");- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByRole
default Locator getByRole(AriaRole role)
Allows locating elements by their ARIA role, ARIA attributes and accessible name.Usage
Consider the following DOM structure.
You can locate each element by it's implicit role:
assertThat(page .getByRole(AriaRole.HEADING, new Page.GetByRoleOptions().setName("Sign up"))) .isVisible(); page.getByRole(AriaRole.CHECKBOX, new Page.GetByRoleOptions().setName("Subscribe")) .check(); page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName( Pattern.compile("submit", Pattern.CASE_INSENSITIVE))) .click();Details
Role selector **does not replace** accessibility audits and conformance tests, but rather gives early feedback about the ARIA guidelines.
Many html elements have an implicitly defined role that is recognized by the role selector. You can find all the supported roles here. ARIA guidelines **do not recommend** duplicating implicit roles and attributes by setting
roleand/oraria-*attributes to default values.- Parameters:
role- Required aria role.- Since:
- v1.27
-
getByRole
Locator getByRole(AriaRole role, Locator.GetByRoleOptions options)
Allows locating elements by their ARIA role, ARIA attributes and accessible name.Usage
Consider the following DOM structure.
You can locate each element by it's implicit role:
assertThat(page .getByRole(AriaRole.HEADING, new Page.GetByRoleOptions().setName("Sign up"))) .isVisible(); page.getByRole(AriaRole.CHECKBOX, new Page.GetByRoleOptions().setName("Subscribe")) .check(); page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName( Pattern.compile("submit", Pattern.CASE_INSENSITIVE))) .click();Details
Role selector **does not replace** accessibility audits and conformance tests, but rather gives early feedback about the ARIA guidelines.
Many html elements have an implicitly defined role that is recognized by the role selector. You can find all the supported roles here. ARIA guidelines **do not recommend** duplicating implicit roles and attributes by setting
roleand/oraria-*attributes to default values.- Parameters:
role- Required aria role.- Since:
- v1.27
-
getByTestId
Locator getByTestId(String testId)
Locate element by the test id.Usage
Consider the following DOM structure.
You can locate the element by it's test id:
page.getByTestId("directions").click();Details
By default, the
data-testidattribute is used as a test id. UseSelectors.setTestIdAttribute()to configure a different test id attribute if necessary.- Parameters:
testId- Id to locate the element by.- Since:
- v1.27
-
getByTestId
Locator getByTestId(Pattern testId)
Locate element by the test id.Usage
Consider the following DOM structure.
You can locate the element by it's test id:
page.getByTestId("directions").click();Details
By default, the
data-testidattribute is used as a test id. UseSelectors.setTestIdAttribute()to configure a different test id attribute if necessary.- Parameters:
testId- Id to locate the element by.- Since:
- v1.27
-
getByText
default Locator getByText(String text)
Allows locating elements that contain given text.See also
Locator.filter()that allows to match by another criteria, like an accessible role, and then filter by the text content.Usage
Consider the following DOM structure:
You can locate by text substring, exact string, or a regular expression:
// Matches <span> page.getByText("world") // Matches first <div> page.getByText("Hello world") // Matches second <div> page.getByText("Hello", new Page.GetByTextOptions().setExact(true)) // Matches both <div>s page.getByText(Pattern.compile("Hello")) // Matches second <div> page.getByText(Pattern.compile("^hello$", Pattern.CASE_INSENSITIVE))Details
Matching by text always normalizes whitespace, even with exact match. For example, it turns multiple spaces into one, turns line breaks into spaces and ignores leading and trailing whitespace.
Input elements of the type
buttonandsubmitare matched by theirvalueinstead of the text content. For example, locating by text"Log in"matches<input type=button value="Log in">.- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByText
Locator getByText(String text, Locator.GetByTextOptions options)
Allows locating elements that contain given text.See also
Locator.filter()that allows to match by another criteria, like an accessible role, and then filter by the text content.Usage
Consider the following DOM structure:
You can locate by text substring, exact string, or a regular expression:
// Matches <span> page.getByText("world") // Matches first <div> page.getByText("Hello world") // Matches second <div> page.getByText("Hello", new Page.GetByTextOptions().setExact(true)) // Matches both <div>s page.getByText(Pattern.compile("Hello")) // Matches second <div> page.getByText(Pattern.compile("^hello$", Pattern.CASE_INSENSITIVE))Details
Matching by text always normalizes whitespace, even with exact match. For example, it turns multiple spaces into one, turns line breaks into spaces and ignores leading and trailing whitespace.
Input elements of the type
buttonandsubmitare matched by theirvalueinstead of the text content. For example, locating by text"Log in"matches<input type=button value="Log in">.- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByText
default Locator getByText(Pattern text)
Allows locating elements that contain given text.See also
Locator.filter()that allows to match by another criteria, like an accessible role, and then filter by the text content.Usage
Consider the following DOM structure:
You can locate by text substring, exact string, or a regular expression:
// Matches <span> page.getByText("world") // Matches first <div> page.getByText("Hello world") // Matches second <div> page.getByText("Hello", new Page.GetByTextOptions().setExact(true)) // Matches both <div>s page.getByText(Pattern.compile("Hello")) // Matches second <div> page.getByText(Pattern.compile("^hello$", Pattern.CASE_INSENSITIVE))Details
Matching by text always normalizes whitespace, even with exact match. For example, it turns multiple spaces into one, turns line breaks into spaces and ignores leading and trailing whitespace.
Input elements of the type
buttonandsubmitare matched by theirvalueinstead of the text content. For example, locating by text"Log in"matches<input type=button value="Log in">.- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByText
Locator getByText(Pattern text, Locator.GetByTextOptions options)
Allows locating elements that contain given text.See also
Locator.filter()that allows to match by another criteria, like an accessible role, and then filter by the text content.Usage
Consider the following DOM structure:
You can locate by text substring, exact string, or a regular expression:
// Matches <span> page.getByText("world") // Matches first <div> page.getByText("Hello world") // Matches second <div> page.getByText("Hello", new Page.GetByTextOptions().setExact(true)) // Matches both <div>s page.getByText(Pattern.compile("Hello")) // Matches second <div> page.getByText(Pattern.compile("^hello$", Pattern.CASE_INSENSITIVE))Details
Matching by text always normalizes whitespace, even with exact match. For example, it turns multiple spaces into one, turns line breaks into spaces and ignores leading and trailing whitespace.
Input elements of the type
buttonandsubmitare matched by theirvalueinstead of the text content. For example, locating by text"Log in"matches<input type=button value="Log in">.- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByTitle
default Locator getByTitle(String text)
Allows locating elements by their title attribute.Usage
Consider the following DOM structure.
You can check the issues count after locating it by the title text:
assertThat(page.getByTitle("Issues count")).hasText("25 issues");- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByTitle
Locator getByTitle(String text, Locator.GetByTitleOptions options)
Allows locating elements by their title attribute.Usage
Consider the following DOM structure.
You can check the issues count after locating it by the title text:
assertThat(page.getByTitle("Issues count")).hasText("25 issues");- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByTitle
default Locator getByTitle(Pattern text)
Allows locating elements by their title attribute.Usage
Consider the following DOM structure.
You can check the issues count after locating it by the title text:
assertThat(page.getByTitle("Issues count")).hasText("25 issues");- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
getByTitle
Locator getByTitle(Pattern text, Locator.GetByTitleOptions options)
Allows locating elements by their title attribute.Usage
Consider the following DOM structure.
You can check the issues count after locating it by the title text:
assertThat(page.getByTitle("Issues count")).hasText("25 issues");- Parameters:
text- Text to locate the element for.- Since:
- v1.27
-
highlight
void highlight()
Highlight the corresponding element(s) on the screen. Useful for debugging, don't commit the code that usesLocator.highlight().- Since:
- v1.20
-
hover
default void hover()
Hover over the matching element.Usage
page.getByRole(AriaRole.LINK).hover();Details
This method hovers over the element by performing the following steps:
- Wait for actionability checks on the element, unless
forceoption is set. - Scroll the element into view if needed.
- Use
Page.mouse()to hover over the center of the element, or the specifiedposition. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set.
If the element is detached from the DOM at any moment during the action, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.- Since:
- v1.14
- Wait for actionability checks on the element, unless
-
hover
void hover(Locator.HoverOptions options)
Hover over the matching element.Usage
page.getByRole(AriaRole.LINK).hover();Details
This method hovers over the element by performing the following steps:
- Wait for actionability checks on the element, unless
forceoption is set. - Scroll the element into view if needed.
- Use
Page.mouse()to hover over the center of the element, or the specifiedposition. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set.
If the element is detached from the DOM at any moment during the action, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.- Since:
- v1.14
- Wait for actionability checks on the element, unless
-
innerHTML
default String innerHTML()
Returns theelement.innerHTML.- Since:
- v1.14
-
innerHTML
String innerHTML(Locator.InnerHTMLOptions options)
Returns theelement.innerHTML.- Since:
- v1.14
-
innerText
default String innerText()
Returns theelement.innerText.NOTE: If you need to assert text on the page, prefer
LocatorAssertions.hasText()withuseInnerTextoption to avoid flakiness. See assertions guide for more details.- Since:
- v1.14
-
innerText
String innerText(Locator.InnerTextOptions options)
Returns theelement.innerText.NOTE: If you need to assert text on the page, prefer
LocatorAssertions.hasText()withuseInnerTextoption to avoid flakiness. See assertions guide for more details.- Since:
- v1.14
-
inputValue
default String inputValue()
Returns the value for the matching<input>or<textarea>or<select>element.NOTE: If you need to assert input value, prefer
LocatorAssertions.hasValue()to avoid flakiness. See assertions guide for more details.Usage
String value = page.getByRole(AriaRole.TEXTBOX).inputValue();Details
Throws elements that are not an input, textarea or a select. However, if the element is inside the
<label>element that has an associated control, returns the value of the control.- Since:
- v1.14
-
inputValue
String inputValue(Locator.InputValueOptions options)
Returns the value for the matching<input>or<textarea>or<select>element.NOTE: If you need to assert input value, prefer
LocatorAssertions.hasValue()to avoid flakiness. See assertions guide for more details.Usage
String value = page.getByRole(AriaRole.TEXTBOX).inputValue();Details
Throws elements that are not an input, textarea or a select. However, if the element is inside the
<label>element that has an associated control, returns the value of the control.- Since:
- v1.14
-
isChecked
default boolean isChecked()
Returns whether the element is checked. Throws if the element is not a checkbox or radio input.NOTE: If you need to assert that checkbox is checked, prefer
LocatorAssertions.isChecked()to avoid flakiness. See assertions guide for more details.Usage
boolean checked = page.getByRole(AriaRole.CHECKBOX).isChecked();- Since:
- v1.14
-
isChecked
boolean isChecked(Locator.IsCheckedOptions options)
Returns whether the element is checked. Throws if the element is not a checkbox or radio input.NOTE: If you need to assert that checkbox is checked, prefer
LocatorAssertions.isChecked()to avoid flakiness. See assertions guide for more details.Usage
boolean checked = page.getByRole(AriaRole.CHECKBOX).isChecked();- Since:
- v1.14
-
isDisabled
default boolean isDisabled()
Returns whether the element is disabled, the opposite of enabled.NOTE: If you need to assert that an element is disabled, prefer
LocatorAssertions.isDisabled()to avoid flakiness. See assertions guide for more details.Usage
boolean disabled = page.getByRole(AriaRole.BUTTON).isDisabled();- Since:
- v1.14
-
isDisabled
boolean isDisabled(Locator.IsDisabledOptions options)
Returns whether the element is disabled, the opposite of enabled.NOTE: If you need to assert that an element is disabled, prefer
LocatorAssertions.isDisabled()to avoid flakiness. See assertions guide for more details.Usage
boolean disabled = page.getByRole(AriaRole.BUTTON).isDisabled();- Since:
- v1.14
-
isEditable
default boolean isEditable()
Returns whether the element is editable.NOTE: If you need to assert that an element is editable, prefer
LocatorAssertions.isEditable()to avoid flakiness. See assertions guide for more details.Usage
boolean editable = page.getByRole(AriaRole.TEXTBOX).isEditable();- Since:
- v1.14
-
isEditable
boolean isEditable(Locator.IsEditableOptions options)
Returns whether the element is editable.NOTE: If you need to assert that an element is editable, prefer
LocatorAssertions.isEditable()to avoid flakiness. See assertions guide for more details.Usage
boolean editable = page.getByRole(AriaRole.TEXTBOX).isEditable();- Since:
- v1.14
-
isEnabled
default boolean isEnabled()
Returns whether the element is enabled.NOTE: If you need to assert that an element is enabled, prefer
LocatorAssertions.isEnabled()to avoid flakiness. See assertions guide for more details.Usage
boolean enabled = page.getByRole(AriaRole.BUTTON).isEnabled();- Since:
- v1.14
-
isEnabled
boolean isEnabled(Locator.IsEnabledOptions options)
Returns whether the element is enabled.NOTE: If you need to assert that an element is enabled, prefer
LocatorAssertions.isEnabled()to avoid flakiness. See assertions guide for more details.Usage
boolean enabled = page.getByRole(AriaRole.BUTTON).isEnabled();- Since:
- v1.14
-
isHidden
default boolean isHidden()
Returns whether the element is hidden, the opposite of visible.NOTE: If you need to assert that element is hidden, prefer
LocatorAssertions.isHidden()to avoid flakiness. See assertions guide for more details.Usage
boolean hidden = page.getByRole(AriaRole.BUTTON).isHidden();- Since:
- v1.14
-
isHidden
boolean isHidden(Locator.IsHiddenOptions options)
Returns whether the element is hidden, the opposite of visible.NOTE: If you need to assert that element is hidden, prefer
LocatorAssertions.isHidden()to avoid flakiness. See assertions guide for more details.Usage
boolean hidden = page.getByRole(AriaRole.BUTTON).isHidden();- Since:
- v1.14
-
isVisible
default boolean isVisible()
Returns whether the element is visible.NOTE: If you need to assert that element is visible, prefer
LocatorAssertions.isVisible()to avoid flakiness. See assertions guide for more details.Usage
boolean visible = page.getByRole(AriaRole.BUTTON).isVisible();- Since:
- v1.14
-
isVisible
boolean isVisible(Locator.IsVisibleOptions options)
Returns whether the element is visible.NOTE: If you need to assert that element is visible, prefer
LocatorAssertions.isVisible()to avoid flakiness. See assertions guide for more details.Usage
boolean visible = page.getByRole(AriaRole.BUTTON).isVisible();- Since:
- v1.14
-
last
Locator last()
Returns locator to the last matching element.Usage
Locator banana = page.getByRole(AriaRole.LISTITEM).last();- Since:
- v1.14
-
locator
default Locator locator(String selectorOrLocator)
The method finds an element matching the specified selector in the locator's subtree. It also accepts filter options, similar toLocator.filter()method.- Parameters:
selectorOrLocator- A selector or locator to use when resolving DOM element.- Since:
- v1.14
-
locator
Locator locator(String selectorOrLocator, Locator.LocatorOptions options)
The method finds an element matching the specified selector in the locator's subtree. It also accepts filter options, similar toLocator.filter()method.- Parameters:
selectorOrLocator- A selector or locator to use when resolving DOM element.- Since:
- v1.14
-
locator
default Locator locator(Locator selectorOrLocator)
The method finds an element matching the specified selector in the locator's subtree. It also accepts filter options, similar toLocator.filter()method.- Parameters:
selectorOrLocator- A selector or locator to use when resolving DOM element.- Since:
- v1.14
-
locator
Locator locator(Locator selectorOrLocator, Locator.LocatorOptions options)
The method finds an element matching the specified selector in the locator's subtree. It also accepts filter options, similar toLocator.filter()method.- Parameters:
selectorOrLocator- A selector or locator to use when resolving DOM element.- Since:
- v1.14
-
nth
Locator nth(int index)
Returns locator to the n-th matching element. It's zero based,nth(0)selects the first element.Usage
Locator banana = page.getByRole(AriaRole.LISTITEM).nth(2);- Since:
- v1.14
-
or
Locator or(Locator locator)
Creates a locator that matches either of the two locators.Usage
Consider a scenario where you'd like to click on a "New email" button, but sometimes a security settings dialog shows up instead. In this case, you can wait for either a "New email" button, or a dialog and act accordingly.
Locator newEmail = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("New")); Locator dialog = page.getByText("Confirm security settings"); assertThat(newEmail.or(dialog)).isVisible(); if (dialog.isVisible()) page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Dismiss")).click(); newEmail.click();- Parameters:
locator- Alternative locator to match.- Since:
- v1.33
-
page
Page page()
A page this locator belongs to.- Since:
- v1.19
-
press
default void press(String key)
Focuses the matching element and presses a combination of the keys.Usage
page.getByRole(AriaRole.TEXTBOX).press("Backspace");Details
Focuses the element, and then uses
Keyboard.down()andKeyboard.up().keycan specify the intended keyboardEvent.key value or a single character to generate the text for. A superset of thekeyvalues can be found here. Examples of the keys are:F1-F12,Digit0-Digit9,KeyA-KeyZ,Backquote,Minus,Equal,Backslash,Backspace,Tab,Delete,Escape,ArrowDown,End,Enter,Home,Insert,PageDown,PageUp,ArrowRight,ArrowUp, etc.Following modification shortcuts are also supported:
Shift,Control,Alt,Meta,ShiftLeft,ControlOrMeta.ControlOrMetaresolves toControlon Windows and Linux and toMetaon macOS.Holding down
Shiftwill type the text that corresponds to thekeyin the upper case.If
keyis a single character, it is case-sensitive, so the valuesaandAwill generate different respective texts.Shortcuts such as
key: "Control+o",key: "Control++orkey: "Control+Shift+T"are supported as well. When specified with the modifier, modifier is pressed and being held while the subsequent key is being pressed.- Parameters:
key- Name of the key to press or a character to generate, such asArrowLeftora.- Since:
- v1.14
-
press
void press(String key, Locator.PressOptions options)
Focuses the matching element and presses a combination of the keys.Usage
page.getByRole(AriaRole.TEXTBOX).press("Backspace");Details
Focuses the element, and then uses
Keyboard.down()andKeyboard.up().keycan specify the intended keyboardEvent.key value or a single character to generate the text for. A superset of thekeyvalues can be found here. Examples of the keys are:F1-F12,Digit0-Digit9,KeyA-KeyZ,Backquote,Minus,Equal,Backslash,Backspace,Tab,Delete,Escape,ArrowDown,End,Enter,Home,Insert,PageDown,PageUp,ArrowRight,ArrowUp, etc.Following modification shortcuts are also supported:
Shift,Control,Alt,Meta,ShiftLeft,ControlOrMeta.ControlOrMetaresolves toControlon Windows and Linux and toMetaon macOS.Holding down
Shiftwill type the text that corresponds to thekeyin the upper case.If
keyis a single character, it is case-sensitive, so the valuesaandAwill generate different respective texts.Shortcuts such as
key: "Control+o",key: "Control++orkey: "Control+Shift+T"are supported as well. When specified with the modifier, modifier is pressed and being held while the subsequent key is being pressed.- Parameters:
key- Name of the key to press or a character to generate, such asArrowLeftora.- Since:
- v1.14
-
pressSequentially
default void pressSequentially(String text)
NOTE: In most cases, you should useLocator.fill()instead. You only need to press keys one by one if there is special keyboard handling on the page.Focuses the element, and then sends a
keydown,keypress/input, andkeyupevent for each character in the text.To press a special key, like
ControlorArrowDown, useLocator.press().Usage
locator.pressSequentially("Hello"); // Types instantly locator.pressSequentially("World", new Locator.pressSequentiallyOptions().setDelay(100)); // Types slower, like a userAn example of typing into a text field and then submitting the form:
Locator locator = page.getByLabel("Password"); locator.pressSequentially("my password"); locator.press("Enter");- Parameters:
text- String of characters to sequentially press into a focused element.- Since:
- v1.38
-
pressSequentially
void pressSequentially(String text, Locator.PressSequentiallyOptions options)
NOTE: In most cases, you should useLocator.fill()instead. You only need to press keys one by one if there is special keyboard handling on the page.Focuses the element, and then sends a
keydown,keypress/input, andkeyupevent for each character in the text.To press a special key, like
ControlorArrowDown, useLocator.press().Usage
locator.pressSequentially("Hello"); // Types instantly locator.pressSequentially("World", new Locator.pressSequentiallyOptions().setDelay(100)); // Types slower, like a userAn example of typing into a text field and then submitting the form:
Locator locator = page.getByLabel("Password"); locator.pressSequentially("my password"); locator.press("Enter");- Parameters:
text- String of characters to sequentially press into a focused element.- Since:
- v1.38
-
screenshot
default byte[] screenshot()
Take a screenshot of the element matching the locator.Usage
page.getByRole(AriaRole.LINK).screenshot();Disable animations and save screenshot to a file:
page.getByRole(AriaRole.LINK).screenshot(new Locator.ScreenshotOptions() .setAnimations(ScreenshotAnimations.DISABLED) .setPath(Paths.get("example.png")));Details
This method captures a screenshot of the page, clipped to the size and position of a particular element matching the locator. If the element is covered by other elements, it will not be actually visible on the screenshot. If the element is a scrollable container, only the currently scrolled content will be visible on the screenshot.
This method waits for the actionability checks, then scrolls element into view before taking a screenshot. If the element is detached from DOM, the method throws an error.
Returns the buffer with the captured screenshot.
- Since:
- v1.14
-
screenshot
byte[] screenshot(Locator.ScreenshotOptions options)
Take a screenshot of the element matching the locator.Usage
page.getByRole(AriaRole.LINK).screenshot();Disable animations and save screenshot to a file:
page.getByRole(AriaRole.LINK).screenshot(new Locator.ScreenshotOptions() .setAnimations(ScreenshotAnimations.DISABLED) .setPath(Paths.get("example.png")));Details
This method captures a screenshot of the page, clipped to the size and position of a particular element matching the locator. If the element is covered by other elements, it will not be actually visible on the screenshot. If the element is a scrollable container, only the currently scrolled content will be visible on the screenshot.
This method waits for the actionability checks, then scrolls element into view before taking a screenshot. If the element is detached from DOM, the method throws an error.
Returns the buffer with the captured screenshot.
- Since:
- v1.14
-
scrollIntoViewIfNeeded
default void scrollIntoViewIfNeeded()
This method waits for actionability checks, then tries to scroll element into view, unless it is completely visible as defined by IntersectionObserver'sratio.See scrolling for alternative ways to scroll.
- Since:
- v1.14
-
scrollIntoViewIfNeeded
void scrollIntoViewIfNeeded(Locator.ScrollIntoViewIfNeededOptions options)
This method waits for actionability checks, then tries to scroll element into view, unless it is completely visible as defined by IntersectionObserver'sratio.See scrolling for alternative ways to scroll.
- Since:
- v1.14
-
selectOption
default List<String> selectOption(String values)
Selects option or options in<select>.Details
This method waits for actionability checks, waits until all specified options are present in the
<select>element and selects these options.If the target element is not a
<select>element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be used instead.Returns the array of option values that have been successfully selected.
Triggers a
changeandinputevent once all the provided options have been selected.Usage
// single selection matching the value or label element.selectOption("blue"); // single selection matching the label element.selectOption(new SelectOption().setLabel("Blue")); // multiple selection for blue, red and second option element.selectOption(new String[] {"red", "green", "blue"});- Parameters:
values- Options to select. If the<select>has themultipleattribute, all matching options are selected, otherwise only the first option matching one of the passed options is selected. String values are matching both values and labels. Option is considered matching if all specified properties match.- Since:
- v1.14
-
selectOption
List<String> selectOption(String values, Locator.SelectOptionOptions options)
Selects option or options in<select>.Details
This method waits for actionability checks, waits until all specified options are present in the
<select>element and selects these options.If the target element is not a
<select>element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be used instead.Returns the array of option values that have been successfully selected.
Triggers a
changeandinputevent once all the provided options have been selected.Usage
// single selection matching the value or label element.selectOption("blue"); // single selection matching the label element.selectOption(new SelectOption().setLabel("Blue")); // multiple selection for blue, red and second option element.selectOption(new String[] {"red", "green", "blue"});- Parameters:
values- Options to select. If the<select>has themultipleattribute, all matching options are selected, otherwise only the first option matching one of the passed options is selected. String values are matching both values and labels. Option is considered matching if all specified properties match.- Since:
- v1.14
-
selectOption
default List<String> selectOption(ElementHandle values)
Selects option or options in<select>.Details
This method waits for actionability checks, waits until all specified options are present in the
<select>element and selects these options.If the target element is not a
<select>element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be used instead.Returns the array of option values that have been successfully selected.
Triggers a
changeandinputevent once all the provided options have been selected.Usage
// single selection matching the value or label element.selectOption("blue"); // single selection matching the label element.selectOption(new SelectOption().setLabel("Blue")); // multiple selection for blue, red and second option element.selectOption(new String[] {"red", "green", "blue"});- Parameters:
values- Options to select. If the<select>has themultipleattribute, all matching options are selected, otherwise only the first option matching one of the passed options is selected. String values are matching both values and labels. Option is considered matching if all specified properties match.- Since:
- v1.14
-
selectOption
List<String> selectOption(ElementHandle values, Locator.SelectOptionOptions options)
Selects option or options in<select>.Details
This method waits for actionability checks, waits until all specified options are present in the
<select>element and selects these options.If the target element is not a
<select>element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be used instead.Returns the array of option values that have been successfully selected.
Triggers a
changeandinputevent once all the provided options have been selected.Usage
// single selection matching the value or label element.selectOption("blue"); // single selection matching the label element.selectOption(new SelectOption().setLabel("Blue")); // multiple selection for blue, red and second option element.selectOption(new String[] {"red", "green", "blue"});- Parameters:
values- Options to select. If the<select>has themultipleattribute, all matching options are selected, otherwise only the first option matching one of the passed options is selected. String values are matching both values and labels. Option is considered matching if all specified properties match.- Since:
- v1.14
-
selectOption
default List<String> selectOption(String[] values)
Selects option or options in<select>.Details
This method waits for actionability checks, waits until all specified options are present in the
<select>element and selects these options.If the target element is not a
<select>element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be used instead.Returns the array of option values that have been successfully selected.
Triggers a
changeandinputevent once all the provided options have been selected.Usage
// single selection matching the value or label element.selectOption("blue"); // single selection matching the label element.selectOption(new SelectOption().setLabel("Blue")); // multiple selection for blue, red and second option element.selectOption(new String[] {"red", "green", "blue"});- Parameters:
values- Options to select. If the<select>has themultipleattribute, all matching options are selected, otherwise only the first option matching one of the passed options is selected. String values are matching both values and labels. Option is considered matching if all specified properties match.- Since:
- v1.14
-
selectOption
List<String> selectOption(String[] values, Locator.SelectOptionOptions options)
Selects option or options in<select>.Details
This method waits for actionability checks, waits until all specified options are present in the
<select>element and selects these options.If the target element is not a
<select>element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be used instead.Returns the array of option values that have been successfully selected.
Triggers a
changeandinputevent once all the provided options have been selected.Usage
// single selection matching the value or label element.selectOption("blue"); // single selection matching the label element.selectOption(new SelectOption().setLabel("Blue")); // multiple selection for blue, red and second option element.selectOption(new String[] {"red", "green", "blue"});- Parameters:
values- Options to select. If the<select>has themultipleattribute, all matching options are selected, otherwise only the first option matching one of the passed options is selected. String values are matching both values and labels. Option is considered matching if all specified properties match.- Since:
- v1.14
-
selectOption
default List<String> selectOption(SelectOption values)
Selects option or options in<select>.Details
This method waits for actionability checks, waits until all specified options are present in the
<select>element and selects these options.If the target element is not a
<select>element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be used instead.Returns the array of option values that have been successfully selected.
Triggers a
changeandinputevent once all the provided options have been selected.Usage
// single selection matching the value or label element.selectOption("blue"); // single selection matching the label element.selectOption(new SelectOption().setLabel("Blue")); // multiple selection for blue, red and second option element.selectOption(new String[] {"red", "green", "blue"});- Parameters:
values- Options to select. If the<select>has themultipleattribute, all matching options are selected, otherwise only the first option matching one of the passed options is selected. String values are matching both values and labels. Option is considered matching if all specified properties match.- Since:
- v1.14
-
selectOption
List<String> selectOption(SelectOption values, Locator.SelectOptionOptions options)
Selects option or options in<select>.Details
This method waits for actionability checks, waits until all specified options are present in the
<select>element and selects these options.If the target element is not a
<select>element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be used instead.Returns the array of option values that have been successfully selected.
Triggers a
changeandinputevent once all the provided options have been selected.Usage
// single selection matching the value or label element.selectOption("blue"); // single selection matching the label element.selectOption(new SelectOption().setLabel("Blue")); // multiple selection for blue, red and second option element.selectOption(new String[] {"red", "green", "blue"});- Parameters:
values- Options to select. If the<select>has themultipleattribute, all matching options are selected, otherwise only the first option matching one of the passed options is selected. String values are matching both values and labels. Option is considered matching if all specified properties match.- Since:
- v1.14
-
selectOption
default List<String> selectOption(ElementHandle[] values)
Selects option or options in<select>.Details
This method waits for actionability checks, waits until all specified options are present in the
<select>element and selects these options.If the target element is not a
<select>element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be used instead.Returns the array of option values that have been successfully selected.
Triggers a
changeandinputevent once all the provided options have been selected.Usage
// single selection matching the value or label element.selectOption("blue"); // single selection matching the label element.selectOption(new SelectOption().setLabel("Blue")); // multiple selection for blue, red and second option element.selectOption(new String[] {"red", "green", "blue"});- Parameters:
values- Options to select. If the<select>has themultipleattribute, all matching options are selected, otherwise only the first option matching one of the passed options is selected. String values are matching both values and labels. Option is considered matching if all specified properties match.- Since:
- v1.14
-
selectOption
List<String> selectOption(ElementHandle[] values, Locator.SelectOptionOptions options)
Selects option or options in<select>.Details
This method waits for actionability checks, waits until all specified options are present in the
<select>element and selects these options.If the target element is not a
<select>element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be used instead.Returns the array of option values that have been successfully selected.
Triggers a
changeandinputevent once all the provided options have been selected.Usage
// single selection matching the value or label element.selectOption("blue"); // single selection matching the label element.selectOption(new SelectOption().setLabel("Blue")); // multiple selection for blue, red and second option element.selectOption(new String[] {"red", "green", "blue"});- Parameters:
values- Options to select. If the<select>has themultipleattribute, all matching options are selected, otherwise only the first option matching one of the passed options is selected. String values are matching both values and labels. Option is considered matching if all specified properties match.- Since:
- v1.14
-
selectOption
default List<String> selectOption(SelectOption[] values)
Selects option or options in<select>.Details
This method waits for actionability checks, waits until all specified options are present in the
<select>element and selects these options.If the target element is not a
<select>element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be used instead.Returns the array of option values that have been successfully selected.
Triggers a
changeandinputevent once all the provided options have been selected.Usage
// single selection matching the value or label element.selectOption("blue"); // single selection matching the label element.selectOption(new SelectOption().setLabel("Blue")); // multiple selection for blue, red and second option element.selectOption(new String[] {"red", "green", "blue"});- Parameters:
values- Options to select. If the<select>has themultipleattribute, all matching options are selected, otherwise only the first option matching one of the passed options is selected. String values are matching both values and labels. Option is considered matching if all specified properties match.- Since:
- v1.14
-
selectOption
List<String> selectOption(SelectOption[] values, Locator.SelectOptionOptions options)
Selects option or options in<select>.Details
This method waits for actionability checks, waits until all specified options are present in the
<select>element and selects these options.If the target element is not a
<select>element, this method throws an error. However, if the element is inside the<label>element that has an associated control, the control will be used instead.Returns the array of option values that have been successfully selected.
Triggers a
changeandinputevent once all the provided options have been selected.Usage
// single selection matching the value or label element.selectOption("blue"); // single selection matching the label element.selectOption(new SelectOption().setLabel("Blue")); // multiple selection for blue, red and second option element.selectOption(new String[] {"red", "green", "blue"});- Parameters:
values- Options to select. If the<select>has themultipleattribute, all matching options are selected, otherwise only the first option matching one of the passed options is selected. String values are matching both values and labels. Option is considered matching if all specified properties match.- Since:
- v1.14
-
selectText
default void selectText()
This method waits for actionability checks, then focuses the element and selects all its text content.If the element is inside the
<label>element that has an associated control, focuses and selects text in the control instead.- Since:
- v1.14
-
selectText
void selectText(Locator.SelectTextOptions options)
This method waits for actionability checks, then focuses the element and selects all its text content.If the element is inside the
<label>element that has an associated control, focuses and selects text in the control instead.- Since:
- v1.14
-
setChecked
default void setChecked(boolean checked)
Set the state of a checkbox or a radio element.Usage
page.getByRole(AriaRole.CHECKBOX).setChecked(true);Details
This method checks or unchecks an element by performing the following steps:
- Ensure that matched element is a checkbox or a radio input. If not, this method throws.
- If the element already has the right checked state, this method returns immediately.
- Wait for actionability checks on the matched element,
unless
forceoption is set. If the element is detached during the checks, the whole action is retried. - Scroll the element into view if needed.
- Use
Page.mouse()to click in the center of the element. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set. - Ensure that the element is now checked or unchecked. If not, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.- Parameters:
checked- Whether to check or uncheck the checkbox.- Since:
- v1.15
-
setChecked
void setChecked(boolean checked, Locator.SetCheckedOptions options)Set the state of a checkbox or a radio element.Usage
page.getByRole(AriaRole.CHECKBOX).setChecked(true);Details
This method checks or unchecks an element by performing the following steps:
- Ensure that matched element is a checkbox or a radio input. If not, this method throws.
- If the element already has the right checked state, this method returns immediately.
- Wait for actionability checks on the matched element,
unless
forceoption is set. If the element is detached during the checks, the whole action is retried. - Scroll the element into view if needed.
- Use
Page.mouse()to click in the center of the element. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set. - Ensure that the element is now checked or unchecked. If not, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.- Parameters:
checked- Whether to check or uncheck the checkbox.- Since:
- v1.15
-
setInputFiles
default void setInputFiles(Path files)
Upload file or multiple files into<input type=file>. For inputs with a[webkitdirectory]attribute, only a single directory path is supported.Usage
// Select one file page.getByLabel("Upload file").setInputFiles(Paths.get("myfile.pdf")); // Select multiple files page.getByLabel("Upload files").setInputFiles(new Path[] {Paths.get("file1.txt"), Paths.get("file2.txt")}); // Select a directory page.getByLabel("Upload directory").setInputFiles(Paths.get("mydir")); // Remove all the selected files page.getByLabel("Upload file").setInputFiles(new Path[0]); // Upload buffer from memory page.getByLabel("Upload file").setInputFiles(new FilePayload( "file.txt", "text/plain", "this is test".getBytes(StandardCharsets.UTF_8)));Details
Sets the value of the file input to these file paths or files. If some of the
filePathsare relative paths, then they are resolved relative to the current working directory. For empty array, clears the selected files.This method expects
Locatorto point to an input element. However, if the element is inside the<label>element that has an associated control, targets the control instead.- Since:
- v1.14
-
setInputFiles
void setInputFiles(Path files, Locator.SetInputFilesOptions options)
Upload file or multiple files into<input type=file>. For inputs with a[webkitdirectory]attribute, only a single directory path is supported.Usage
// Select one file page.getByLabel("Upload file").setInputFiles(Paths.get("myfile.pdf")); // Select multiple files page.getByLabel("Upload files").setInputFiles(new Path[] {Paths.get("file1.txt"), Paths.get("file2.txt")}); // Select a directory page.getByLabel("Upload directory").setInputFiles(Paths.get("mydir")); // Remove all the selected files page.getByLabel("Upload file").setInputFiles(new Path[0]); // Upload buffer from memory page.getByLabel("Upload file").setInputFiles(new FilePayload( "file.txt", "text/plain", "this is test".getBytes(StandardCharsets.UTF_8)));Details
Sets the value of the file input to these file paths or files. If some of the
filePathsare relative paths, then they are resolved relative to the current working directory. For empty array, clears the selected files.This method expects
Locatorto point to an input element. However, if the element is inside the<label>element that has an associated control, targets the control instead.- Since:
- v1.14
-
setInputFiles
default void setInputFiles(Path[] files)
Upload file or multiple files into<input type=file>. For inputs with a[webkitdirectory]attribute, only a single directory path is supported.Usage
// Select one file page.getByLabel("Upload file").setInputFiles(Paths.get("myfile.pdf")); // Select multiple files page.getByLabel("Upload files").setInputFiles(new Path[] {Paths.get("file1.txt"), Paths.get("file2.txt")}); // Select a directory page.getByLabel("Upload directory").setInputFiles(Paths.get("mydir")); // Remove all the selected files page.getByLabel("Upload file").setInputFiles(new Path[0]); // Upload buffer from memory page.getByLabel("Upload file").setInputFiles(new FilePayload( "file.txt", "text/plain", "this is test".getBytes(StandardCharsets.UTF_8)));Details
Sets the value of the file input to these file paths or files. If some of the
filePathsare relative paths, then they are resolved relative to the current working directory. For empty array, clears the selected files.This method expects
Locatorto point to an input element. However, if the element is inside the<label>element that has an associated control, targets the control instead.- Since:
- v1.14
-
setInputFiles
void setInputFiles(Path[] files, Locator.SetInputFilesOptions options)
Upload file or multiple files into<input type=file>. For inputs with a[webkitdirectory]attribute, only a single directory path is supported.Usage
// Select one file page.getByLabel("Upload file").setInputFiles(Paths.get("myfile.pdf")); // Select multiple files page.getByLabel("Upload files").setInputFiles(new Path[] {Paths.get("file1.txt"), Paths.get("file2.txt")}); // Select a directory page.getByLabel("Upload directory").setInputFiles(Paths.get("mydir")); // Remove all the selected files page.getByLabel("Upload file").setInputFiles(new Path[0]); // Upload buffer from memory page.getByLabel("Upload file").setInputFiles(new FilePayload( "file.txt", "text/plain", "this is test".getBytes(StandardCharsets.UTF_8)));Details
Sets the value of the file input to these file paths or files. If some of the
filePathsare relative paths, then they are resolved relative to the current working directory. For empty array, clears the selected files.This method expects
Locatorto point to an input element. However, if the element is inside the<label>element that has an associated control, targets the control instead.- Since:
- v1.14
-
setInputFiles
default void setInputFiles(FilePayload files)
Upload file or multiple files into<input type=file>. For inputs with a[webkitdirectory]attribute, only a single directory path is supported.Usage
// Select one file page.getByLabel("Upload file").setInputFiles(Paths.get("myfile.pdf")); // Select multiple files page.getByLabel("Upload files").setInputFiles(new Path[] {Paths.get("file1.txt"), Paths.get("file2.txt")}); // Select a directory page.getByLabel("Upload directory").setInputFiles(Paths.get("mydir")); // Remove all the selected files page.getByLabel("Upload file").setInputFiles(new Path[0]); // Upload buffer from memory page.getByLabel("Upload file").setInputFiles(new FilePayload( "file.txt", "text/plain", "this is test".getBytes(StandardCharsets.UTF_8)));Details
Sets the value of the file input to these file paths or files. If some of the
filePathsare relative paths, then they are resolved relative to the current working directory. For empty array, clears the selected files.This method expects
Locatorto point to an input element. However, if the element is inside the<label>element that has an associated control, targets the control instead.- Since:
- v1.14
-
setInputFiles
void setInputFiles(FilePayload files, Locator.SetInputFilesOptions options)
Upload file or multiple files into<input type=file>. For inputs with a[webkitdirectory]attribute, only a single directory path is supported.Usage
// Select one file page.getByLabel("Upload file").setInputFiles(Paths.get("myfile.pdf")); // Select multiple files page.getByLabel("Upload files").setInputFiles(new Path[] {Paths.get("file1.txt"), Paths.get("file2.txt")}); // Select a directory page.getByLabel("Upload directory").setInputFiles(Paths.get("mydir")); // Remove all the selected files page.getByLabel("Upload file").setInputFiles(new Path[0]); // Upload buffer from memory page.getByLabel("Upload file").setInputFiles(new FilePayload( "file.txt", "text/plain", "this is test".getBytes(StandardCharsets.UTF_8)));Details
Sets the value of the file input to these file paths or files. If some of the
filePathsare relative paths, then they are resolved relative to the current working directory. For empty array, clears the selected files.This method expects
Locatorto point to an input element. However, if the element is inside the<label>element that has an associated control, targets the control instead.- Since:
- v1.14
-
setInputFiles
default void setInputFiles(FilePayload[] files)
Upload file or multiple files into<input type=file>. For inputs with a[webkitdirectory]attribute, only a single directory path is supported.Usage
// Select one file page.getByLabel("Upload file").setInputFiles(Paths.get("myfile.pdf")); // Select multiple files page.getByLabel("Upload files").setInputFiles(new Path[] {Paths.get("file1.txt"), Paths.get("file2.txt")}); // Select a directory page.getByLabel("Upload directory").setInputFiles(Paths.get("mydir")); // Remove all the selected files page.getByLabel("Upload file").setInputFiles(new Path[0]); // Upload buffer from memory page.getByLabel("Upload file").setInputFiles(new FilePayload( "file.txt", "text/plain", "this is test".getBytes(StandardCharsets.UTF_8)));Details
Sets the value of the file input to these file paths or files. If some of the
filePathsare relative paths, then they are resolved relative to the current working directory. For empty array, clears the selected files.This method expects
Locatorto point to an input element. However, if the element is inside the<label>element that has an associated control, targets the control instead.- Since:
- v1.14
-
setInputFiles
void setInputFiles(FilePayload[] files, Locator.SetInputFilesOptions options)
Upload file or multiple files into<input type=file>. For inputs with a[webkitdirectory]attribute, only a single directory path is supported.Usage
// Select one file page.getByLabel("Upload file").setInputFiles(Paths.get("myfile.pdf")); // Select multiple files page.getByLabel("Upload files").setInputFiles(new Path[] {Paths.get("file1.txt"), Paths.get("file2.txt")}); // Select a directory page.getByLabel("Upload directory").setInputFiles(Paths.get("mydir")); // Remove all the selected files page.getByLabel("Upload file").setInputFiles(new Path[0]); // Upload buffer from memory page.getByLabel("Upload file").setInputFiles(new FilePayload( "file.txt", "text/plain", "this is test".getBytes(StandardCharsets.UTF_8)));Details
Sets the value of the file input to these file paths or files. If some of the
filePathsare relative paths, then they are resolved relative to the current working directory. For empty array, clears the selected files.This method expects
Locatorto point to an input element. However, if the element is inside the<label>element that has an associated control, targets the control instead.- Since:
- v1.14
-
tap
default void tap()
Perform a tap gesture on the element matching the locator.Details
This method taps the element by performing the following steps:
- Wait for actionability checks on the element, unless
forceoption is set. - Scroll the element into view if needed.
- Use
Page.touchscreen()to tap the center of the element, or the specifiedposition. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set.
If the element is detached from the DOM at any moment during the action, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.NOTE:
element.tap()requires that thehasTouchoption of the browser context be set to true.- Since:
- v1.14
- Wait for actionability checks on the element, unless
-
tap
void tap(Locator.TapOptions options)
Perform a tap gesture on the element matching the locator.Details
This method taps the element by performing the following steps:
- Wait for actionability checks on the element, unless
forceoption is set. - Scroll the element into view if needed.
- Use
Page.touchscreen()to tap the center of the element, or the specifiedposition. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set.
If the element is detached from the DOM at any moment during the action, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.NOTE:
element.tap()requires that thehasTouchoption of the browser context be set to true.- Since:
- v1.14
- Wait for actionability checks on the element, unless
-
textContent
default String textContent()
Returns thenode.textContent.NOTE: If you need to assert text on the page, prefer
LocatorAssertions.hasText()to avoid flakiness. See assertions guide for more details.- Since:
- v1.14
-
textContent
String textContent(Locator.TextContentOptions options)
Returns thenode.textContent.NOTE: If you need to assert text on the page, prefer
LocatorAssertions.hasText()to avoid flakiness. See assertions guide for more details.- Since:
- v1.14
-
type
default void type(String text)
Deprecated.In most cases, you should useLocator.fill()instead. You only need to press keys one by one if there is special keyboard handling on the page - in this case useLocator.pressSequentially().- Parameters:
text- A text to type into a focused element.- Since:
- v1.14
-
type
void type(String text, Locator.TypeOptions options)
Deprecated.In most cases, you should useLocator.fill()instead. You only need to press keys one by one if there is special keyboard handling on the page - in this case useLocator.pressSequentially().- Parameters:
text- A text to type into a focused element.- Since:
- v1.14
-
uncheck
default void uncheck()
Ensure that checkbox or radio element is unchecked.Usage
page.getByRole(AriaRole.CHECKBOX).uncheck();Details
This method unchecks the element by performing the following steps:
- Ensure that element is a checkbox or a radio input. If not, this method throws. If the element is already unchecked, this method returns immediately.
- Wait for actionability checks on the element, unless
forceoption is set. - Scroll the element into view if needed.
- Use
Page.mouse()to click in the center of the element. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set. - Ensure that the element is now unchecked. If not, this method throws.
If the element is detached from the DOM at any moment during the action, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.- Since:
- v1.14
-
uncheck
void uncheck(Locator.UncheckOptions options)
Ensure that checkbox or radio element is unchecked.Usage
page.getByRole(AriaRole.CHECKBOX).uncheck();Details
This method unchecks the element by performing the following steps:
- Ensure that element is a checkbox or a radio input. If not, this method throws. If the element is already unchecked, this method returns immediately.
- Wait for actionability checks on the element, unless
forceoption is set. - Scroll the element into view if needed.
- Use
Page.mouse()to click in the center of the element. - Wait for initiated navigations to either succeed or fail, unless
noWaitAfteroption is set. - Ensure that the element is now unchecked. If not, this method throws.
If the element is detached from the DOM at any moment during the action, this method throws.
When all steps combined have not finished during the specified
timeout, this method throws aTimeoutError. Passing zero timeout disables this.- Since:
- v1.14
-
waitFor
default void waitFor()
Returns when element specified by locator satisfies thestateoption.If target element already satisfies the condition, the method returns immediately. Otherwise, waits for up to
timeoutmilliseconds until the condition is met.Usage
Locator orderSent = page.locator("#order-sent"); orderSent.waitFor();- Since:
- v1.16
-
waitFor
void waitFor(Locator.WaitForOptions options)
Returns when element specified by locator satisfies thestateoption.If target element already satisfies the condition, the method returns immediately. Otherwise, waits for up to
timeoutmilliseconds until the condition is met.Usage
Locator orderSent = page.locator("#order-sent"); orderSent.waitFor();- Since:
- v1.16
-
-