如何在 JavaScript 中通过 XPATH 获取元素?
Posted
技术标签:
【中文标题】如何在 JavaScript 中通过 XPATH 获取元素?【英文标题】:How to get Element by XPATH in JavaScript? 【发布时间】:2021-12-13 16:18:42 【问题描述】:我有一个非常基本的代码。它只是在单击时更改按钮的样式。使用getElementById
时效果很好,但我想以XPATH
的方式进行操作。我是 javascript 新手。我做错了什么,我该如何做到这一点?
代码:
<!DOCTYPE html>
<html>
<body>
<p id="demo">Click the button to change the layout of this paragraph</p>
<button onclick="myFunction()">Click Me!</button>
<script>
function myFunction()
let x = document.getElementByXpath("//html[1]/body[1]/button[1]");
x.style.fontSize = "25px";
x.style.color = "red";
</script>
</body>
</html>
【问题讨论】:
没有document.getElementByXpath
developer.mozilla.org/en-US/docs/Web/API/Document/evaluate
没有 XPATH 有很多更好的方法来做到这一点。
【参考方案1】:
看document.evaluate()
function getElementByXpath(path)
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
function myFunction()
let x = getElementByXpath("//html[1]/body[1]/button[1]");
x.style.fontSize = "25px";
x.style.color = "red";
<p id="demo">Click the button to change the layout of this paragraph</p>
<button onclick="myFunction()">Click Me!</button>
【讨论】:
嘿!谢谢你。有效!但是,我有一个问题。.singleNodeValue
是做什么的?你能解释一下代码吗?
@Abhaysalvi singleNodeValue以上是关于如何在 JavaScript 中通过 XPATH 获取元素?的主要内容,如果未能解决你的问题,请参考以下文章
Python Selenium 无法使用 Selenium 和 Python 在#shadow-root (open) 中通过 xpath 找到元素
如何在joomla模块中通过javascript发送输入文件类型