Update chrome.js

This commit is contained in:
Namhyeon Go 2021-12-26 22:59:02 +09:00 committed by GitHub
parent 5d6968c518
commit 08c5cf7fc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -565,7 +565,7 @@ var ChromeObject = function() {
if (this.debuggingPort > 0) { if (this.debuggingPort > 0) {
while (i < repeat) { while (i < repeat) {
this.evaluate('document.title = "' + title + '"'); this.evaluate('document.title = ' + this.__escape(title));
i++; i++;
} }
} }
@ -624,7 +624,7 @@ var ChromeObject = function() {
var pos = -1; var pos = -1;
var s = '(function() {' var s = '(function() {'
+ ' var element = Object.values(__getDocument().querySelectorAll("' + selector + '")).find(function(x) {' + ' var element = Object.values(__getDocument().querySelectorAll("' + selector + '")).find(function(x) {'
+ ' return (x.innerText.indexOf(decodeURIComponent("' + encodeURIComponent(searchText) + '")) > -1);' + ' return (x.innerText.indexOf(' + this.__escape() + ') > -1);'
+ ' });' + ' });'
+ ' if (element) {' + ' if (element) {'
+ ' var rect = element.getBoundingClientRect();' + ' var rect = element.getBoundingClientRect();'
@ -665,7 +665,7 @@ var ChromeObject = function() {
s += '(function() {' s += '(function() {'
+ ' var elements = Object.values(__getDocument().querySelectorAll("' + selector + '")).filter(function(x) {' + ' var elements = Object.values(__getDocument().querySelectorAll("' + selector + '")).filter(function(x) {'
+ ' var el = x.querySelector("' + subSelector + '");' + ' var el = x.querySelector("' + subSelector + '");'
+ ' var keywords = decodeURIComponent("' + encodeURIComponent(searchText) + '").trim().split(" ");' + ' var keywords = ' + this.__escape(searchText) + '.trim().split(" ");'
+ ' var text = el instanceof HTMLElement ? [el.innerText, el.getAttribute("aria-label"), el.getAttribute("class")].join(" ") : "";' + ' var text = el instanceof HTMLElement ? [el.innerText, el.getAttribute("aria-label"), el.getAttribute("class")].join(" ") : "";'
+ ' return (text.split(" ").filter(function(w) { return keywords.indexOf(w) > -1; }).length >= keywords.length);' + ' return (text.split(" ").filter(function(w) { return keywords.indexOf(w) > -1; }).length >= keywords.length);'
+ ' ' + (startIndex > 0 ? '}).slice(' + startIndex + ');' : '});') + ' ' + (startIndex > 0 ? '}).slice(' + startIndex + ');' : '});')
@ -723,7 +723,7 @@ var ChromeObject = function() {
s += '(function() {' s += '(function() {'
+ ' var elements = Object.values(__getDocument().querySelectorAll("' + selector + '")).filter(function(x) {' + ' var elements = Object.values(__getDocument().querySelectorAll("' + selector + '")).filter(function(x) {'
+ ' var el = x.querySelector("' + subSelector + '");' + ' var el = x.querySelector("' + subSelector + '");'
+ ' var searchText = decodeURIComponent("' + encodeURIComponent(searchText) + '").trim();' + ' var searchText = ' + this.__escape(searchText) + '.trim();'
+ ' var text = el instanceof HTMLElement ? [el.innerText, el.getAttribute("aria-label"), el.getAttribute("class")].join(" ") : "";' + ' var text = el instanceof HTMLElement ? [el.innerText, el.getAttribute("aria-label"), el.getAttribute("class")].join(" ") : "";'
+ ' return (text.indexOf(searchText) > -1);' + ' return (text.indexOf(searchText) > -1);'
+ ' ' + (startIndex > 0 ? '}).slice(' + startIndex + ');' : '});') + ' ' + (startIndex > 0 ? '}).slice(' + startIndex + ');' : '});')
@ -774,7 +774,7 @@ var ChromeObject = function() {
s += '(function() {' s += '(function() {'
+ ' var elements = Object.values(__getDocument().querySelectorAll("' + selector + '")).filter(function(x) {' + ' var elements = Object.values(__getDocument().querySelectorAll("' + selector + '")).filter(function(x) {'
+ ' var el = x.querySelector("' + subSelector + '");' + ' var el = x.querySelector("' + subSelector + '");'
+ ' var keywords = decodeURIComponent("' + encodeURIComponent(searchText) + '").trim().split(" ");' + ' var keywords = ' + this.__escape(searchText) + '.trim().split(" ");'
+ ' var text = el instanceof HTMLElement ? [el.innerText, el.getAttribute("aria-label"), el.getAttribute("class")].join(" ") : "";' + ' var text = el instanceof HTMLElement ? [el.innerText, el.getAttribute("aria-label"), el.getAttribute("class")].join(" ") : "";'
+ ' return (text.split(" ").filter(function(w) { return keywords.indexOf(w) > -1; }).length >= keywords.length);' + ' return (text.split(" ").filter(function(w) { return keywords.indexOf(w) > -1; }).length >= keywords.length);'
+ ' ' + (startIndex > 0 ? '}).slice(' + startIndex + ');' : '});') + ' ' + (startIndex > 0 ? '}).slice(' + startIndex + ');' : '});')
@ -810,7 +810,7 @@ var ChromeObject = function() {
s += '(function() {' s += '(function() {'
+ ' var elements = Object.values(__getDocument().querySelectorAll("' + selector + '")).filter(function(x) {' + ' var elements = Object.values(__getDocument().querySelectorAll("' + selector + '")).filter(function(x) {'
+ ' var el = x.querySelector("' + subSelector + '");' + ' var el = x.querySelector("' + subSelector + '");'
+ ' var searchText = decodeURIComponent("' + encodeURIComponent(searchText) + '").trim();' + ' var searchText = ' + this.__escape(searchText) + '.trim();'
+ ' var text = el instanceof HTMLElement ? [el.innerText, el.getAttribute("aria-label"), el.getAttribute("class")].join(" ") : "";' + ' var text = el instanceof HTMLElement ? [el.innerText, el.getAttribute("aria-label"), el.getAttribute("class")].join(" ") : "";'
+ ' return (text.indexOf(searchText) > -1);' + ' return (text.indexOf(searchText) > -1);'
+ ' ' + (startIndex > 0 ? '}).slice(' + startIndex + ');' : '});') + ' ' + (startIndex > 0 ? '}).slice(' + startIndex + ');' : '});')
@ -831,7 +831,7 @@ var ChromeObject = function() {
+ ' var elements = Object.values(__getDocument().querySelectorAll("' + selector + '"));' + ' var elements = Object.values(__getDocument().querySelectorAll("' + selector + '"));'
+ ' var result = -1;' + ' var result = -1;'
+ ' for (var i = 0; i < elements.length; i++) {' + ' for (var i = 0; i < elements.length; i++) {'
+ ' if (x.querySelector("' + subSelector + '").innerText.indexOf(decodeURIComponent("' + encodeURIComponent(searchText) + '")) > -1) {' + ' if (x.querySelector("' + subSelector + '").innerText.indexOf(' + this.__escape(searchText) + ') > -1) {'
+ ' result = i;' + ' result = i;'
+ ' break;' + ' break;'
+ ' }' + ' }'
@ -918,7 +918,7 @@ var ChromeObject = function() {
this.triggerEventByFind = function(eventName, selector, searchText) { this.triggerEventByFind = function(eventName, selector, searchText) {
var s = '(function() {' var s = '(function() {'
+ ' var element = Object.values(__getDocument().querySelectorAll("' + selector + '")).find(function(x) {' + ' var element = Object.values(__getDocument().querySelectorAll("' + selector + '")).find(function(x) {'
+ ' return (x.innerText.indexOf(decodeURIComponent("' + encodeURIComponent(searchText) + '")) > -1);' + ' return (x.innerText.indexOf(' + this.__escape(searchText) + ') > -1);'
+ ' });' + ' });'
+ ' if (element) {' + ' if (element) {'
+ ' element.' + (eventName == 'click' ? 'click()' : 'dispatchEvent(new Event("' + eventName + '"))') + ';' + ' element.' + (eventName == 'click' ? 'click()' : 'dispatchEvent(new Event("' + eventName + '"))') + ';'
@ -931,7 +931,7 @@ var ChromeObject = function() {
this.triggerEventOnNestedFind = function(eventName, selector, subSelector, searchText) { this.triggerEventOnNestedFind = function(eventName, selector, subSelector, searchText) {
var s = '(function() {' var s = '(function() {'
+ ' var element = Object.values(__getDocument().querySelectorAll("' + selector + '")).find(function(x) {' + ' var element = Object.values(__getDocument().querySelectorAll("' + selector + '")).find(function(x) {'
+ ' return (x.querySelector("' + subSelector + '").innerText.indexOf(decodeURIComponent("' + encodeURIComponent(searchText) + '")) > -1);' + ' return (x.querySelector("' + subSelector + '").innerText.indexOf(' + this.__escape(searchText) + ') > -1);'
+ ' });' + ' });'
+ ' if (element) {' + ' if (element) {'
+ ' element.' + (eventName == 'click' ? 'click()' : 'dispatchEvent(new Event("' + eventName + '"))') + ';' + ' element.' + (eventName == 'click' ? 'click()' : 'dispatchEvent(new Event("' + eventName + '"))') + ';'
@ -980,7 +980,7 @@ var ChromeObject = function() {
}; };
this.setValue = function(selector, value, repeat, searchIndex) { this.setValue = function(selector, value, repeat, searchIndex) {
var s = encodeURIComponent(value), var s = value,
i = 0, i = 0,
searchIndex = (typeof searchIndex !== "undefined" ? searchIndex : 0), searchIndex = (typeof searchIndex !== "undefined" ? searchIndex : 0),
repeat = (typeof repeat !== "undefined" ? repeat : 1) repeat = (typeof repeat !== "undefined" ? repeat : 1)
@ -988,9 +988,9 @@ var ChromeObject = function() {
while (i < repeat) { while (i < repeat) {
if (searchIndex > 0) { if (searchIndex > 0) {
this.evaluate('Object.values(__getDocument().querySelectorAll("' + selector + '"))[' + searchIndex + '].value = decodeURIComponent("' + s + '");'); this.evaluate('Object.values(__getDocument().querySelectorAll("' + selector + '"))[' + searchIndex + '].value = ' + this.__escape(s));
} else { } else {
this.evaluate('__getDocument().querySelector("' + selector + '").value = decodeURIComponent("' + s + '")'); this.evaluate('__getDocument().querySelector("' + selector + '").value = ' + this.__escape(s));
} }
i++; i++;
} }
@ -1001,7 +1001,7 @@ var ChromeObject = function() {
}; };
this.setHTML = function(selector, value, repeat, searchIndex) { this.setHTML = function(selector, value, repeat, searchIndex) {
var s = encodeURIComponent(value), var s = value,
i = 0, i = 0,
searchIndex = (typeof searchIndex !== "undefined" ? searchIndex : 0), searchIndex = (typeof searchIndex !== "undefined" ? searchIndex : 0),
repeat = (typeof repeat !== "undefined" ? repeat : 1) repeat = (typeof repeat !== "undefined" ? repeat : 1)
@ -1009,9 +1009,9 @@ var ChromeObject = function() {
while (i < repeat) { while (i < repeat) {
if (searchIndex > 0) { if (searchIndex > 0) {
this.evaluate('Object.values(__getDocument().querySelectorAll("' + selector + '"))[' + searchIndex + '].value = decodeURIComponent("' + s + '");'); this.evaluate('Object.values(__getDocument().querySelectorAll("' + selector + '"))[' + searchIndex + '].value = ' + this.__escape(s));
} else { } else {
this.evaluate('__getDocument().querySelector("' + selector + '").innerHTML = decodeURIComponent("' + s + '")'); this.evaluate('__getDocument().querySelector("' + selector + '").innerHTML = ' + this.__escape(s));
} }
i++; i++;
} }
@ -1038,6 +1038,10 @@ var ChromeObject = function() {
return (elementPosition.y > 0 && (elementPosition.y + elementPosition.h < this.getWindowInnerHeight())); return (elementPosition.y > 0 && (elementPosition.y + elementPosition.h < this.getWindowInnerHeight()));
}; };
this.__escape = function(value) {
return 'decodeURIComponent("' + encodeURIComponent(value) + '")';
};
this.create(); this.create();
}; };