Pārlūkot izejas kodu

Add New XPath

pull/108/head
naibo pirms 1 gada
vecāks
revīzija
5f7aee4918
1 mainītis faili ar 21 papildinājumiem un 0 dzēšanām
  1. +21
    -0
      Extension/manifest_v3/src/content-scripts/global.js

+ 21
- 0
Extension/manifest_v3/src/content-scripts/global.js Parādīt failu

@ -49,10 +49,31 @@ export function getElementXPaths(element, parentElement = document.body) {
if (element.alt) {
paths.push("//" + element.tagName + "[@alt='" + element.alt + "']");
}
paths.push(getAbsoluteXPathWithReverseIndex(element));
console.log("ALL PATHS: " + paths);
return paths;
}
function getAbsoluteXPathWithReverseIndex(element) {
var path = [];
while (element && element.nodeType == Node.ELEMENT_NODE) {
var index = 0;
for (var sibling = element.nextSibling; sibling; sibling = sibling.nextSibling) {
// Ignore document type declaration.
if (sibling.nodeType == Node.DOCUMENT_TYPE_NODE)
continue;
if (sibling.nodeName == element.nodeName)
++index;
}
var tagName = element.nodeName.toLowerCase();
var pathIndex = (index ? "[last()-" + index + "]" : "");
path.unshift(tagName + pathIndex);
element = element.parentNode;
}
return "/" + path.join("/");
}
//返回element相对node节点的xpath,默认的node节点是: /
export function readXPath(element, type = 1, node = document.body) {

Notiek ielāde…
Atcelt
Saglabāt