From 16ab291b93844a61c309ce020c36ee920e959dd4 Mon Sep 17 00:00:00 2001 From: jrandolf <101637635+jrandolf@users.noreply.github.com> Date: Thu, 27 Jul 2023 10:17:27 +0200 Subject: [PATCH] chore: specialize `Locator.prototype.setWaitForEnabled` (#10649) --- .../puppeteer-core/src/api/locators/Locator.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/puppeteer-core/src/api/locators/Locator.ts b/packages/puppeteer-core/src/api/locators/Locator.ts index 010c8a7e..ca5c8c65 100644 --- a/packages/puppeteer-core/src/api/locators/Locator.ts +++ b/packages/puppeteer-core/src/api/locators/Locator.ts @@ -324,10 +324,18 @@ export abstract class Locator extends EventEmitter { return from( handle.frame.page().waitForFunction( element => { - if ('disabled' in element && typeof element.disabled === 'boolean') { - return !element.disabled; + if (!(element instanceof HTMLElement)) { + return true; } - return true; + const isNativeFormControl = [ + 'BUTTON', + 'INPUT', + 'SELECT', + 'TEXTAREA', + 'OPTION', + 'OPTGROUP', + ].includes(element.nodeName); + return !isNativeFormControl || !element.hasAttribute('disabled'); }, { timeout: this._timeout,