improve waitForElement

This commit is contained in:
Karsten Hassel
2022-01-13 21:12:15 +01:00
parent 42b80b18f8
commit 2cfafe7bfe
12 changed files with 129 additions and 108 deletions

View File

@@ -23,7 +23,6 @@ exports.stopApplication = function () {
};
exports.getDocument = function (callback, ms) {
if (!ms || ms < 1000) ms = 1000;
const url = "http://" + (config.address || "localhost") + ":" + (config.port || "8080");
jsdom.JSDOM.fromURL(url, { resources: "usable", runScripts: "dangerously" }).then((dom) => {
dom.window.name = "jsdom";
@@ -37,22 +36,22 @@ exports.getDocument = function (callback, ms) {
});
};
exports.waitForElement = function(selector) {
return new Promise(resolve => {
if (document.querySelector(selector)) {
return resolve(document.querySelector(selector));
exports.waitForElement = function (selector) {
return new Promise((resolve) => {
if (document.querySelector(selector) && document.querySelector(selector).value !== undefined) {
return resolve(document.querySelector(selector));
}
const observer = new MutationObserver(() => {
if (document.querySelector(selector) && document.querySelector(selector).value !== undefined) {
resolve(document.querySelector(selector));
observer.disconnect();
}
});
const observer = new MutationObserver(() => {
if (document.querySelector(selector)) {
resolve(document.querySelector(selector));
observer.disconnect();
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
observer.observe(document.body, {
childList: true,
subtree: true
});
});
};