UNPKG

taiko

Version:

Taiko is a Node.js library for automating Chromium based browsers

43 lines (39 loc) 1.25 kB
const { description, waitAndGetActionableElement, checksMap, } = require("./pageActionChecks"); const { doActionAwaitingNavigation } = require("../doActionAwaitingNavigation"); const { defaultConfig } = require("../config"); const inputHandler = require("../handlers/inputHandler"); const runtimeHandler = require("../handlers/runtimeHandler"); const { highlightElement } = require("../elements/elementHelper"); const { focus } = require("./focus"); const _clear = async (elem) => { await runtimeHandler.runtimeCallFunctionOn( () => { document.execCommand("selectall", false, null); }, null, { objectId: elem }, ); await inputHandler.down("Backspace"); await inputHandler.up("Backspace"); }; const clear = async (selector, options) => { const element = await waitAndGetActionableElement(selector, options.force, [ checksMap.writable, ]); const desc = !selector ? "Cleared element on focus" : `Cleared ${description(element, true)}`; await doActionAwaitingNavigation(options, async () => { await focus(element, options); if (defaultConfig.headful) { await highlightElement(element); } await _clear(element.get()); }); return desc; }; module.exports = { clear };