1. 定义一个xpath
var xpath = '//a[@class="router-link-exact-active router-link-active"]';
  1. 创建xpath,解析网页 // 创建 DOMParser 对象
var parser = new DOMParser();

// 将 HTML 字符串转换为 DOM 对象
var doc = parser.parseFromString(document.documentElement.outerHTML, 'text/html');
  1. 常见的操作
// 获取元素文本
var elem = doc.evaluate(xpath, doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
var content = elem.textContent;

// 点击元素
doc.evaluate('xpath定位表达式', document).iterateNext().click();

// 获取value值
doc.evaluate('xpath定位表达式', document).iterateNext().value();

// xpath定位转为js
doc.evaluate('xpath定位表达式', document).iterateNext();

// 定位到元素
doc.evaluate('xpath定位表达式', document).iterateNext().scrollIntoView();
  1. 关于 evaluate 在浏览器里直接调用
var xpathResult = document.evaluate(
  xpathExpression,
  contextNode,
  namespaceResolver,
  resultType,
  result
);
  • xpathExpression 表示要计算的 Xpath 字符串。
  • contextNode 表示本次查询的上下文节点(参照 XPath 规范 http://www.w3.org/TR/xpath)。通常会使用 document。
  • namespaceResolver 是函数。传入名空间前缀,返回跟此前缀相关的名空间 URI(字符串)。通常用来解析 Xpath 内的前缀,以便对文档进行匹配。HTML 文档或者不使用名空间前缀的文档,通常传入 null。
  • resultType 是整数。指定所返回的 XPathResult 的类型,常使用 named constant properties,如 XPathResult.ANY_TYPE,范围 0 到 9,见 https://developer.mozilla.org/zh-CN/docs/Web/API/Document/evaluate
  • result 为 XPathResult 型,用以存储查询结果。通常传入 null,此时将创建新的 XPathResult 对象。

例子

var xpath = '/html/body/div[3]/maxamineignore/div[2]/div[2]/span[2]/table[2]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr[2]/td';
var deviceId = document.evaluate(
    xpath,
    document,
    null,
    XPathResult.FIRST_ORDERED_NODE_TYPE,
    null
).singleNodeValue.innerText;

该方法返回值可用属性 https://developer.mozilla.org/en-US/docs/Web/API/XPathResult