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