Class LocatorImpl
- java.lang.Object
-
- com.microsoft.playwright.impl.LocatorImpl
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.microsoft.playwright.Locator
Locator.BlurOptions, Locator.BoundingBoxOptions, Locator.CheckOptions, Locator.ClearOptions, Locator.ClickOptions, Locator.DblclickOptions, Locator.DispatchEventOptions, Locator.DragToOptions, Locator.ElementHandleOptions, Locator.EvaluateHandleOptions, Locator.EvaluateOptions, Locator.FillOptions, Locator.FilterOptions, Locator.FocusOptions, Locator.GetAttributeOptions, Locator.GetByAltTextOptions, Locator.GetByLabelOptions, Locator.GetByPlaceholderOptions, Locator.GetByRoleOptions, Locator.GetByTextOptions, Locator.GetByTitleOptions, Locator.HoverOptions, Locator.InnerHTMLOptions, Locator.InnerTextOptions, Locator.InputValueOptions, Locator.IsCheckedOptions, Locator.IsDisabledOptions, Locator.IsEditableOptions, Locator.IsEnabledOptions, Locator.IsHiddenOptions, Locator.IsVisibleOptions, Locator.LocatorOptions, Locator.PressOptions, Locator.PressSequentiallyOptions, Locator.ScreenshotOptions, Locator.ScrollIntoViewIfNeededOptions, Locator.SelectOptionOptions, Locator.SelectTextOptions, Locator.SetCheckedOptions, Locator.SetInputFilesOptions, Locator.TapOptions, Locator.TextContentOptions, Locator.TypeOptions, Locator.UncheckOptions, Locator.WaitForOptions
-
-
Constructor Summary
Constructors Constructor Description LocatorImpl(FrameImpl frame, java.lang.String selector, Locator.LocatorOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<Locator>all()When the locator points to a list of elements, this returns an array of locators, pointing to their respective elements.java.util.List<java.lang.String>allInnerTexts()Returns an array ofnode.innerTextvalues for all matching nodes.java.util.List<java.lang.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.voidblur(Locator.BlurOptions options)Calls blur on the element.private voidblurImpl(Locator.BlurOptions options)BoundingBoxboundingBox(Locator.BoundingBoxOptions options)This method returns the bounding box of the element matching the locator, ornullif the element is not visible.voidcheck(Locator.CheckOptions options)Ensure that checkbox or radio element is checked.voidclear(Locator.ClearOptions options)Clear the input field.voidclick(Locator.ClickOptions options)Click an element.intcount()Returns the number of elements matching the locator.voiddblclick(Locator.DblclickOptions options)Double-click an element.voiddispatchEvent(java.lang.String type, java.lang.Object eventInit, Locator.DispatchEventOptions options)Programmatically dispatch an event on the matching element.voiddragTo(Locator target, Locator.DragToOptions options)Drag the source element towards the target element and drop it.ElementHandleelementHandle(Locator.ElementHandleOptions options)Resolves given locator to the first matching DOM element.java.util.List<ElementHandle>elementHandles()Resolves given locator to all matching DOM elements.private static java.lang.StringescapeWithQuotes(java.lang.String text)java.lang.Objectevaluate(java.lang.String expression, java.lang.Object arg, Locator.EvaluateOptions options)Execute JavaScript code in the page, taking the matching element as an argument.java.lang.ObjectevaluateAll(java.lang.String expression, java.lang.Object arg)Execute JavaScript code in the page, taking all matching elements as an argument.JSHandleevaluateHandle(java.lang.String expression, java.lang.Object arg, Locator.EvaluateHandleOptions options)Execute JavaScript code in the page, taking the matching element as an argument, and return aJSHandlewith the result.(package private) FrameExpectResultexpect(java.lang.String expression, FrameExpectOptions options)private FrameExpectResultexpectImpl(java.lang.String expression, FrameExpectOptions options)voidfill(java.lang.String value, Locator.FillOptions options)Set a value to the input field.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.voidfocus(Locator.FocusOptions options)Calls focus on the matching element.FrameLocatorImplframeLocator(java.lang.String selector)When working with iframes, you can create a frame locator that will enter the iframe and allow locating elements in that iframe:java.lang.StringgetAttribute(java.lang.String name, Locator.GetAttributeOptions options)Returns the matching element's attribute value.LocatorgetByAltText(java.lang.String text, Locator.GetByAltTextOptions options)Allows locating elements by their alt text.LocatorgetByAltText(java.util.regex.Pattern text, Locator.GetByAltTextOptions options)Allows locating elements by their alt text.LocatorgetByLabel(java.lang.String text, Locator.GetByLabelOptions options)Allows locating input elements by the text of the associated<label>oraria-labelledbyelement, or by thearia-labelattribute.LocatorgetByLabel(java.util.regex.Pattern text, Locator.GetByLabelOptions options)Allows locating input elements by the text of the associated<label>oraria-labelledbyelement, or by thearia-labelattribute.LocatorgetByPlaceholder(java.lang.String text, Locator.GetByPlaceholderOptions options)Allows locating input elements by the placeholder text.LocatorgetByPlaceholder(java.util.regex.Pattern text, Locator.GetByPlaceholderOptions options)Allows locating input elements by the placeholder text.LocatorgetByRole(AriaRole role, Locator.GetByRoleOptions options)LocatorgetByTestId(java.lang.String testId)Locate element by the test id.LocatorgetByTestId(java.util.regex.Pattern testId)Locate element by the test id.LocatorgetByText(java.lang.String text, Locator.GetByTextOptions options)Allows locating elements that contain given text.LocatorgetByText(java.util.regex.Pattern text, Locator.GetByTextOptions options)Allows locating elements that contain given text.LocatorgetByTitle(java.lang.String text, Locator.GetByTitleOptions options)Allows locating elements by their title attribute.LocatorgetByTitle(java.util.regex.Pattern text, Locator.GetByTitleOptions options)Allows locating elements by their title attribute.voidhighlight()Highlight the corresponding element(s) on the screen.voidhover(Locator.HoverOptions options)Hover over the matching element.java.lang.StringinnerHTML(Locator.InnerHTMLOptions options)Returns theelement.innerHTML.java.lang.StringinnerText(Locator.InnerTextOptions options)Returns theelement.innerText.java.lang.StringinputValue(Locator.InputValueOptions options)Returns the value for the matching<input>or<textarea>or<select>element.booleanisChecked(Locator.IsCheckedOptions options)Returns whether the element is checked.booleanisDisabled(Locator.IsDisabledOptions options)Returns whether the element is disabled, the opposite of enabled.booleanisEditable(Locator.IsEditableOptions options)Returns whether the element is editable.booleanisEnabled(Locator.IsEnabledOptions options)Returns whether the element is enabled.booleanisHidden(Locator.IsHiddenOptions options)Returns whether the element is hidden, the opposite of visible.booleanisVisible(Locator.IsVisibleOptions options)Returns whether the element is visible.Locatorlast()Returns locator to the last matching element.Locatorlocator(Locator selectorOrLocator, Locator.LocatorOptions options)The method finds an element matching the specified selector in the locator's subtree.Locatorlocator(java.lang.String selector, 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.voidpress(java.lang.String key, Locator.PressOptions options)Focuses the matching element and presses a combination of the keys.voidpressSequentially(java.lang.String text, Locator.PressSequentiallyOptions options)NOTE: In most cases, you should useLocator.fill()instead.byte[]screenshot(Locator.ScreenshotOptions options)Take a screenshot of the element matching the locator.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.java.util.List<java.lang.String>selectOption(ElementHandle[] values, Locator.SelectOptionOptions options)Selects option or options in<select>.java.util.List<java.lang.String>selectOption(ElementHandle values, Locator.SelectOptionOptions options)Selects option or options in<select>.java.util.List<java.lang.String>selectOption(SelectOption[] values, Locator.SelectOptionOptions options)Selects option or options in<select>.java.util.List<java.lang.String>selectOption(SelectOption values, Locator.SelectOptionOptions options)Selects option or options in<select>.java.util.List<java.lang.String>selectOption(java.lang.String[] values, Locator.SelectOptionOptions options)Selects option or options in<select>.java.util.List<java.lang.String>selectOption(java.lang.String values, Locator.SelectOptionOptions options)Selects option or options in<select>.voidselectText(Locator.SelectTextOptions options)This method waits for actionability checks, then focuses the element and selects all its text content.voidsetChecked(boolean checked, Locator.SetCheckedOptions options)Set the state of a checkbox or a radio element.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>.voidsetInputFiles(java.nio.file.Path[] files, Locator.SetInputFilesOptions options)Upload file or multiple files into<input type=file>.voidsetInputFiles(java.nio.file.Path files, Locator.SetInputFilesOptions options)Upload file or multiple files into<input type=file>.voidtap(Locator.TapOptions options)Perform a tap gesture on the element matching the locator.java.lang.StringtextContent(Locator.TextContentOptions options)Returns thenode.textContent.(package private) com.google.gson.JsonObjecttoProtocol()java.lang.StringtoString()voidtype(java.lang.String text, Locator.TypeOptions options)voiduncheck(Locator.UncheckOptions options)Ensure that checkbox or radio element is unchecked.voidwaitFor(Locator.WaitForOptions options)Returns when element specified by locator satisfies thestateoption.private voidwaitForImpl(Locator.WaitForOptions options)private <R,O>
RwithElement(java.util.function.BiFunction<ElementHandle,O,R> callback, O options)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.microsoft.playwright.Locator
blur, boundingBox, check, clear, click, dblclick, dispatchEvent, dispatchEvent, dragTo, elementHandle, evaluate, evaluate, evaluateAll, evaluateHandle, evaluateHandle, fill, filter, focus, getAttribute, getByAltText, getByAltText, getByLabel, getByLabel, getByPlaceholder, getByPlaceholder, getByRole, getByText, getByText, getByTitle, getByTitle, hover, innerHTML, innerText, inputValue, isChecked, isDisabled, isEditable, isEnabled, isHidden, isVisible, locator, locator, press, pressSequentially, screenshot, scrollIntoViewIfNeeded, selectOption, selectOption, selectOption, selectOption, selectOption, selectOption, selectText, setChecked, setInputFiles, setInputFiles, setInputFiles, setInputFiles, tap, textContent, type, uncheck, waitFor
-
-
-
-
Field Detail
-
frame
final FrameImpl frame
-
selector
final java.lang.String selector
-
-
Constructor Detail
-
LocatorImpl
public LocatorImpl(FrameImpl frame, java.lang.String selector, Locator.LocatorOptions options)
-
-
Method Detail
-
escapeWithQuotes
private static java.lang.String escapeWithQuotes(java.lang.String text)
-
withElement
private <R,O> R withElement(java.util.function.BiFunction<ElementHandle,O,R> callback, O options)
-
all
public java.util.List<Locator> all()
Description copied from interface:LocatorWhen 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();
-
allInnerTexts
public java.util.List<java.lang.String> allInnerTexts()
Description copied from interface:LocatorReturns 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();- Specified by:
allInnerTextsin interfaceLocator
-
allTextContents
public java.util.List<java.lang.String> allTextContents()
Description copied from interface:LocatorReturns 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();- Specified by:
allTextContentsin interfaceLocator
-
and
public Locator and(Locator locator)
Description copied from interface:LocatorCreates 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"));
-
blur
public void blur(Locator.BlurOptions options)
Description copied from interface:LocatorCalls blur on the element.
-
blurImpl
private void blurImpl(Locator.BlurOptions options)
-
boundingBox
public BoundingBox boundingBox(Locator.BoundingBoxOptions options)
Description copied from interface:LocatorThis 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);- Specified by:
boundingBoxin interfaceLocator
-
check
public void check(Locator.CheckOptions options)
Description copied from interface:LocatorEnsure 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();
-
clear
public void clear(Locator.ClearOptions options)
Description copied from interface:LocatorClear 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();
-
click
public void click(Locator.ClickOptions options)
Description copied from interface:LocatorClick 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)); - Wait for actionability checks on the element, unless
-
count
public int count()
Description copied from interface:LocatorReturns 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();
-
dblclick
public void dblclick(Locator.DblclickOptions options)
Description copied from interface:LocatorDouble-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. - Wait for actionability checks on the element, unless
-
dispatchEvent
public void dispatchEvent(java.lang.String type, java.lang.Object eventInit, Locator.DispatchEventOptions options)Description copied from interface:LocatorProgrammatically 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: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);- Specified by:
dispatchEventin interfaceLocator- Parameters:
type- DOM event type:"click","dragstart", etc.eventInit- Optional event-specific initialization properties.
-
dragTo
public void dragTo(Locator target, Locator.DragToOptions options)
Description copied from interface:LocatorDrag 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));
-
elementHandle
public ElementHandle elementHandle(Locator.ElementHandleOptions options)
Description copied from interface:LocatorResolves given locator to the first matching DOM element. If there are no matching elements, waits for one. If multiple elements match the locator, throws.- Specified by:
elementHandlein interfaceLocator
-
elementHandles
public java.util.List<ElementHandle> elementHandles()
Description copied from interface:LocatorResolves given locator to all matching DOM elements. If there are no matching elements, returns an empty list.- Specified by:
elementHandlesin interfaceLocator
-
evaluate
public java.lang.Object evaluate(java.lang.String expression, java.lang.Object arg, Locator.EvaluateOptions options)Description copied from interface:LocatorExecute 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"));
-
evaluateAll
public java.lang.Object evaluateAll(java.lang.String expression, java.lang.Object arg)Description copied from interface:LocatorExecute 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);- Specified by:
evaluateAllin interfaceLocator- 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.
-
evaluateHandle
public JSHandle evaluateHandle(java.lang.String expression, java.lang.Object arg, Locator.EvaluateHandleOptions options)
Description copied from interface:LocatorExecute 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.- Specified by:
evaluateHandlein interfaceLocator- 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.
-
fill
public void fill(java.lang.String value, Locator.FillOptions options)Description copied from interface:LocatorSet 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().
-
filter
public Locator filter(Locator.FilterOptions options)
Description copied from interface:LocatorThis 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();
-
first
public Locator first()
Description copied from interface:LocatorReturns locator to the first matching element.
-
focus
public void focus(Locator.FocusOptions options)
Description copied from interface:LocatorCalls focus on the matching element.
-
frameLocator
public FrameLocatorImpl frameLocator(java.lang.String selector)
Description copied from interface:LocatorWhen 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();- Specified by:
frameLocatorin interfaceLocator- Parameters:
selector- A selector to use when resolving DOM element.
-
getAttribute
public java.lang.String getAttribute(java.lang.String name, Locator.GetAttributeOptions options)Description copied from interface:LocatorReturns 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.- Specified by:
getAttributein interfaceLocator- Parameters:
name- Attribute name to get the value for.
-
getByAltText
public Locator getByAltText(java.lang.String text, Locator.GetByAltTextOptions options)
Description copied from interface:LocatorAllows 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();- Specified by:
getByAltTextin interfaceLocator- Parameters:
text- Text to locate the element for.
-
getByAltText
public Locator getByAltText(java.util.regex.Pattern text, Locator.GetByAltTextOptions options)
Description copied from interface:LocatorAllows 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();- Specified by:
getByAltTextin interfaceLocator- Parameters:
text- Text to locate the element for.
-
getByLabel
public Locator getByLabel(java.lang.String text, Locator.GetByLabelOptions options)
Description copied from interface:LocatorAllows 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");- Specified by:
getByLabelin interfaceLocator- Parameters:
text- Text to locate the element for.
-
getByLabel
public Locator getByLabel(java.util.regex.Pattern text, Locator.GetByLabelOptions options)
Description copied from interface:LocatorAllows 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");- Specified by:
getByLabelin interfaceLocator- Parameters:
text- Text to locate the element for.
-
getByPlaceholder
public Locator getByPlaceholder(java.lang.String text, Locator.GetByPlaceholderOptions options)
Description copied from interface:LocatorAllows 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");- Specified by:
getByPlaceholderin interfaceLocator- Parameters:
text- Text to locate the element for.
-
getByPlaceholder
public Locator getByPlaceholder(java.util.regex.Pattern text, Locator.GetByPlaceholderOptions options)
Description copied from interface:LocatorAllows 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");- Specified by:
getByPlaceholderin interfaceLocator- Parameters:
text- Text to locate the element for.
-
getByRole
public Locator getByRole(AriaRole role, Locator.GetByRoleOptions options)
Description copied from interface:LocatorAllows 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.
-
getByTestId
public Locator getByTestId(java.lang.String testId)
Description copied from interface:LocatorLocate 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.- Specified by:
getByTestIdin interfaceLocator- Parameters:
testId- Id to locate the element by.
-
getByTestId
public Locator getByTestId(java.util.regex.Pattern testId)
Description copied from interface:LocatorLocate 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.- Specified by:
getByTestIdin interfaceLocator- Parameters:
testId- Id to locate the element by.
-
getByText
public Locator getByText(java.lang.String text, Locator.GetByTextOptions options)
Description copied from interface:LocatorAllows 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">.
-
getByText
public Locator getByText(java.util.regex.Pattern text, Locator.GetByTextOptions options)
Description copied from interface:LocatorAllows 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">.
-
getByTitle
public Locator getByTitle(java.lang.String text, Locator.GetByTitleOptions options)
Description copied from interface:LocatorAllows 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");- Specified by:
getByTitlein interfaceLocator- Parameters:
text- Text to locate the element for.
-
getByTitle
public Locator getByTitle(java.util.regex.Pattern text, Locator.GetByTitleOptions options)
Description copied from interface:LocatorAllows 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");- Specified by:
getByTitlein interfaceLocator- Parameters:
text- Text to locate the element for.
-
highlight
public void highlight()
Description copied from interface:LocatorHighlight the corresponding element(s) on the screen. Useful for debugging, don't commit the code that usesLocator.highlight().
-
hover
public void hover(Locator.HoverOptions options)
Description copied from interface:LocatorHover 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. - Wait for actionability checks on the element, unless
-
innerHTML
public java.lang.String innerHTML(Locator.InnerHTMLOptions options)
Description copied from interface:LocatorReturns theelement.innerHTML.
-
innerText
public java.lang.String innerText(Locator.InnerTextOptions options)
Description copied from interface:LocatorReturns 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.
-
inputValue
public java.lang.String inputValue(Locator.InputValueOptions options)
Description copied from interface:LocatorReturns 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.- Specified by:
inputValuein interfaceLocator
-
isChecked
public boolean isChecked(Locator.IsCheckedOptions options)
Description copied from interface:LocatorReturns 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();
-
isDisabled
public boolean isDisabled(Locator.IsDisabledOptions options)
Description copied from interface:LocatorReturns 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();- Specified by:
isDisabledin interfaceLocator
-
isEditable
public boolean isEditable(Locator.IsEditableOptions options)
Description copied from interface:LocatorReturns 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();- Specified by:
isEditablein interfaceLocator
-
isEnabled
public boolean isEnabled(Locator.IsEnabledOptions options)
Description copied from interface:LocatorReturns 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();
-
isHidden
public boolean isHidden(Locator.IsHiddenOptions options)
Description copied from interface:LocatorReturns 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();
-
isVisible
public boolean isVisible(Locator.IsVisibleOptions options)
Description copied from interface:LocatorReturns 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();
-
last
public Locator last()
Description copied from interface:LocatorReturns locator to the last matching element.**Usage**
Locator banana = page.getByRole(AriaRole.LISTITEM).last();
-
locator
public Locator locator(java.lang.String selector, Locator.LocatorOptions options)
Description copied from interface:LocatorThe method finds an element matching the specified selector in the locator's subtree. It also accepts filter options, similar toLocator.filter()method.
-
locator
public Locator locator(Locator selectorOrLocator, Locator.LocatorOptions options)
Description copied from interface:LocatorThe method finds an element matching the specified selector in the locator's subtree. It also accepts filter options, similar toLocator.filter()method.
-
nth
public Locator nth(int index)
Description copied from interface:LocatorReturns 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);
-
or
public Locator or(Locator locator)
Description copied from interface:LocatorCreates 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();
-
press
public void press(java.lang.String key, Locator.PressOptions options)Description copied from interface:LocatorFocuses 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.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"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.
-
pressSequentially
public void pressSequentially(java.lang.String text, Locator.PressSequentiallyOptions options)Description copied from interface:LocatorNOTE: 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");- Specified by:
pressSequentiallyin interfaceLocator- Parameters:
text- String of characters to sequentially press into a focused element.
-
screenshot
public byte[] screenshot(Locator.ScreenshotOptions options)
Description copied from interface:LocatorTake 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.
- Specified by:
screenshotin interfaceLocator
-
scrollIntoViewIfNeeded
public void scrollIntoViewIfNeeded(Locator.ScrollIntoViewIfNeededOptions options)
Description copied from interface:LocatorThis method waits for actionability checks, then tries to scroll element into view, unless it is completely visible as defined by IntersectionObserver'sratio.- Specified by:
scrollIntoViewIfNeededin interfaceLocator
-
selectOption
public java.util.List<java.lang.String> selectOption(java.lang.String values, Locator.SelectOptionOptions options)Description copied from interface:LocatorSelects 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"});- Specified by:
selectOptionin interfaceLocator- 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.
-
selectOption
public java.util.List<java.lang.String> selectOption(ElementHandle values, Locator.SelectOptionOptions options)
Description copied from interface:LocatorSelects 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"});- Specified by:
selectOptionin interfaceLocator- 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.
-
selectOption
public java.util.List<java.lang.String> selectOption(java.lang.String[] values, Locator.SelectOptionOptions options)Description copied from interface:LocatorSelects 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"});- Specified by:
selectOptionin interfaceLocator- 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.
-
selectOption
public java.util.List<java.lang.String> selectOption(SelectOption values, Locator.SelectOptionOptions options)
Description copied from interface:LocatorSelects 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"});- Specified by:
selectOptionin interfaceLocator- 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.
-
selectOption
public java.util.List<java.lang.String> selectOption(ElementHandle[] values, Locator.SelectOptionOptions options)
Description copied from interface:LocatorSelects 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"});- Specified by:
selectOptionin interfaceLocator- 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.
-
selectOption
public java.util.List<java.lang.String> selectOption(SelectOption[] values, Locator.SelectOptionOptions options)
Description copied from interface:LocatorSelects 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"});- Specified by:
selectOptionin interfaceLocator- 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.
-
selectText
public void selectText(Locator.SelectTextOptions options)
Description copied from interface:LocatorThis 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.- Specified by:
selectTextin interfaceLocator
-
setChecked
public void setChecked(boolean checked, Locator.SetCheckedOptions options)Description copied from interface:LocatorSet 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.- Specified by:
setCheckedin interfaceLocator- Parameters:
checked- Whether to check or uncheck the checkbox.
-
setInputFiles
public void setInputFiles(java.nio.file.Path files, Locator.SetInputFilesOptions options)Description copied from interface:LocatorUpload file or multiple files into<input type=file>.**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")}); // 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.- Specified by:
setInputFilesin interfaceLocator
-
setInputFiles
public void setInputFiles(java.nio.file.Path[] files, Locator.SetInputFilesOptions options)Description copied from interface:LocatorUpload file or multiple files into<input type=file>.**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")}); // 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.- Specified by:
setInputFilesin interfaceLocator
-
setInputFiles
public void setInputFiles(FilePayload files, Locator.SetInputFilesOptions options)
Description copied from interface:LocatorUpload file or multiple files into<input type=file>.**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")}); // 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.- Specified by:
setInputFilesin interfaceLocator
-
setInputFiles
public void setInputFiles(FilePayload[] files, Locator.SetInputFilesOptions options)
Description copied from interface:LocatorUpload file or multiple files into<input type=file>.**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")}); // 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.- Specified by:
setInputFilesin interfaceLocator
-
tap
public void tap(Locator.TapOptions options)
Description copied from interface:LocatorPerform 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. - Wait for actionability checks on the element, unless
-
textContent
public java.lang.String textContent(Locator.TextContentOptions options)
Description copied from interface:LocatorReturns thenode.textContent.NOTE: If you need to assert text on the page, prefer
LocatorAssertions.hasText()to avoid flakiness. See assertions guide for more details.- Specified by:
textContentin interfaceLocator
-
type
public void type(java.lang.String text, Locator.TypeOptions options)
-
uncheck
public void uncheck(Locator.UncheckOptions options)
Description copied from interface:LocatorEnsure 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.
-
waitFor
public void waitFor(Locator.WaitForOptions options)
Description copied from interface:LocatorReturns 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();
-
waitForImpl
private void waitForImpl(Locator.WaitForOptions options)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
expect
FrameExpectResult expect(java.lang.String expression, FrameExpectOptions options)
-
toProtocol
com.google.gson.JsonObject toProtocol()
-
expectImpl
private FrameExpectResult expectImpl(java.lang.String expression, FrameExpectOptions options)
-
-