@qawolf/browser
Advanced tools
Comparing version 0.9.0 to 0.9.1
@@ -19,12 +19,24 @@ "use strict"; | ||
element.focus(); | ||
element.setSelectionRange(0, value.length); | ||
if (element.setSelectionRange) { | ||
element.setSelectionRange(0, value.length); | ||
} | ||
else if (window.getSelection && document.createRange) { | ||
const range = document.createRange(); | ||
range.selectNodeContents(element); | ||
const selection = window.getSelection(); | ||
if (selection) { | ||
selection.removeAllRanges(); | ||
selection.addRange(range); | ||
} | ||
} | ||
return true; | ||
}); | ||
if (!hasValue) { | ||
logger_1.logger.verbose("clearElement: nothing to clear"); | ||
return; | ||
if (hasValue) { | ||
logger_1.logger.verbose("clearElement: clear value"); | ||
yield elementHandle.press("Backspace", undefined); | ||
} | ||
logger_1.logger.verbose("clearElement: clear value"); | ||
yield elementHandle.press("Backspace", undefined); | ||
else { | ||
logger_1.logger.verbose("clearElement: no value to clear"); | ||
} | ||
}); | ||
//# sourceMappingURL=clearElement.js.map |
@@ -33,7 +33,7 @@ import { Size, VirtualCapture } from "@qawolf/screen"; | ||
slowMo?: number | undefined; | ||
debug?: boolean | undefined; | ||
logLevel?: string | undefined; | ||
shouldRecordEvents?: boolean | undefined; | ||
capture?: VirtualCapture | undefined; | ||
debug?: boolean | undefined; | ||
navigationTimeoutMs?: number | undefined; | ||
shouldRecordEvents?: boolean | undefined; | ||
url?: string | undefined; | ||
@@ -40,0 +40,0 @@ browser?: "chromium" | "firefox" | "webkit" | undefined; |
{ | ||
"name": "@qawolf/browser", | ||
"description": "qawolf browser manager", | ||
"version": "0.9.0", | ||
"version": "0.9.1", | ||
"license": "BSD-3.0", | ||
@@ -27,12 +27,12 @@ "main": "./lib/index.js", | ||
"dependencies": { | ||
"@qawolf/config": "0.9.0", | ||
"@qawolf/logger": "0.9.0", | ||
"@qawolf/repl": "0.9.0", | ||
"@qawolf/screen": "0.9.0", | ||
"@qawolf/types": "0.9.0", | ||
"@qawolf/web": "0.9.0", | ||
"@qawolf/config": "0.9.1", | ||
"@qawolf/logger": "0.9.1", | ||
"@qawolf/repl": "0.9.1", | ||
"@qawolf/screen": "0.9.1", | ||
"@qawolf/types": "0.9.1", | ||
"@qawolf/web": "0.9.1", | ||
"rrweb": "^0.7.25" | ||
}, | ||
"devDependencies": { | ||
"@qawolf/jest-plugin": "0.9.0", | ||
"@qawolf/jest-plugin": "0.9.1", | ||
"@types/debug": "^4.1.5", | ||
@@ -50,3 +50,3 @@ "fs-extra": "^8.x", | ||
}, | ||
"gitHead": "5f056d0725b930c5a1dc807c0bd7901506cea1ac" | ||
"gitHead": "ff1dc483ef94a9b3724a48389cb511e1f48fc7c2" | ||
} |
@@ -7,23 +7,37 @@ import { logger } from "@qawolf/logger"; | ||
): Promise<void> => { | ||
// Select all so we replace the text | ||
// From https://github.com/puppeteer/puppeteer/issues/1313#issuecomment-471732011 | ||
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange | ||
// Select the element's content and press backspace to clear the element | ||
// We do this instead of setting the value directly since that does not mimic user behavior. | ||
// Ex. Some sites might rely on an isTrusted change event which we cannot simulate. | ||
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange | ||
// https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection | ||
// https://stackoverflow.com/a/3806004/230462 | ||
const hasValue = await elementHandle.evaluate((element: HTMLInputElement) => { | ||
const value = element.isContentEditable ? element.innerText : element.value; | ||
if (!value || value.length <= 0) return false; | ||
element.focus(); | ||
element.setSelectionRange(0, value.length); | ||
if (element.setSelectionRange) { | ||
element.setSelectionRange(0, value.length); | ||
} else if (window.getSelection && document.createRange) { | ||
const range = document.createRange(); | ||
range.selectNodeContents(element); | ||
const selection = window.getSelection(); | ||
if (selection) { | ||
selection.removeAllRanges(); | ||
selection.addRange(range); | ||
} | ||
} | ||
return true; | ||
}); | ||
if (!hasValue) { | ||
logger.verbose("clearElement: nothing to clear"); | ||
return; | ||
if (hasValue) { | ||
logger.verbose("clearElement: clear value"); | ||
await elementHandle.press("Backspace", undefined); | ||
} else { | ||
logger.verbose("clearElement: no value to clear"); | ||
} | ||
logger.verbose("clearElement: clear value"); | ||
await elementHandle.press("Backspace", undefined); | ||
}; |
Sorry, the diff of this file is not supported yet
174769
3065
+ Added@qawolf/config@0.9.1(transitive)
+ Added@qawolf/logger@0.9.1(transitive)
+ Added@qawolf/repl@0.9.1(transitive)
+ Added@qawolf/screen@0.9.1(transitive)
+ Added@qawolf/types@0.9.1(transitive)
+ Added@qawolf/web@0.9.1(transitive)
- Removed@qawolf/config@0.9.0(transitive)
- Removed@qawolf/logger@0.9.0(transitive)
- Removed@qawolf/repl@0.9.0(transitive)
- Removed@qawolf/screen@0.9.0(transitive)
- Removed@qawolf/types@0.9.0(transitive)
- Removed@qawolf/web@0.9.0(transitive)
Updated@qawolf/config@0.9.1
Updated@qawolf/logger@0.9.1
Updated@qawolf/repl@0.9.1
Updated@qawolf/screen@0.9.1
Updated@qawolf/types@0.9.1
Updated@qawolf/web@0.9.1