Skip to main content
Version: 15.3.0

ElementHandle.waitForSelector() method

Wait for the selector to appear within the element. If at the moment of calling the method the selector already exists, the method will return immediately. If the selector doesn't appear after the timeout milliseconds of waiting, the function will throw.

This method does not work across navigations or if the element is detached from DOM.

Signature:

class ElementHandle {
waitForSelector<Selector extends keyof HTMLElementTagNameMap>(
selector: Selector,
options?: Exclude<WaitForSelectorOptions, 'root'>
): Promise<ElementHandle<HTMLElementTagNameMap[Selector]> | null>;
}

Parameters

ParameterTypeDescription
selectorSelectorA selector of an element to wait for
optionsExclude<WaitForSelectorOptions, 'root'>(Optional) Optional waiting parameters

Returns:

Promise<ElementHandle<HTMLElementTagNameMap[Selector]> | null>

Promise which resolves when element specified by selector string is added to DOM. Resolves to null if waiting for hidden: true and selector is not found in DOM.

Remarks

The optional parameters in options are:

  • visible: wait for the selected element to be present in DOM and to be visible, i.e. to not have display: none or visibility: hidden CSS properties. Defaults to false.

  • hidden: wait for the selected element to not be found in the DOM or to be hidden, i.e. have display: none or visibility: hidden CSS properties. Defaults to false.

  • timeout: maximum time to wait in milliseconds. Defaults to 30000 (30 seconds). Pass 0 to disable timeout. The default value can be changed by using the Page.setDefaultTimeout() method.