跳到主要内容

获取网页元素(XPath)

指令说明

通过 XPath 在指定网页及该网页的全部 iframe 中查找元素。查找成功后会在页面 DOM 中为该元素设置 ms-rpa-id,并返回 WebElement 对象。

该指令适合已经明确知道稳定 XPath 的场景,例如通过网页源码、浏览器开发者工具或 AI 网页结构分析得到 XPath 后,直接获取元素对象。

指令输入参数

输入参数输入参数类型说明
网页对象WebPage要查找元素的网页对象
XPathstrXPath 表达式,例如 //input[@name="q"]//*[@id="kw"]
等待元素出现时长number未匹配到唯一元素时持续等待的最长时间,单位:秒

指令输出参数

输出参数输出参数类型说明
网页元素WebElement查找到的网页元素对象

说明

  • 会在主页面和所有 iframe/frame 中查找。
  • XPath 必须匹配元素节点,不能使用返回文本、属性或其他非元素节点的表达式,例如不要写 //a/text()//a/@href
  • XPath 必须最终匹配唯一元素。
  • 如果没有匹配元素,或匹配到多个元素,会持续重新查找,直到只匹配到一个元素。
  • 如果等待到“等待元素出现时长”结束后仍然匹配到 0 个或多个元素,会抛出异常;请修改 XPath,让它最终只匹配一个元素。
  • 返回的 WebElement 可以继续用于点击网页元素、填写网页输入框、获取网页元素属性、执行JS脚本等指令。
  • XPath 应使用标准浏览器 XPath 语法,不要填写 CSS selector。

示例

从网页对象 web_page 中查找搜索框:

[
{
"children": [],
"in": {
"浏览器类型": "'Google Chrome'",
"匹配方式": "'当前打开的网页'",
"等待加载完成时间": "30"
},
"out": {
"网页对象": "webPage"
},
"ins": "获取已打开的网页"
},
{
"children": [],
"in": {
"网页对象": "webPage",
"XPath": "'//*[@id=\"__docusaurus\"]/nav[1]/div[1]/div[2]/div[2]/div/input'",
"等待元素出现时长": "10"
},
"out": {
"网页元素": "searchInput"
},
"comments": "通过XPath获取搜索输入框",
"ins": "获取网页元素(XPath)"
},
{
"children": [],
"in": {
"网页对象": "webPage",
"网页输入框": "searchInput",
"输入内容": "'xxx'",
"追加输入": "False",
"Tab键": "False",
"Enter键": "False",
"输入方式": "'CDP静默输入'",
"输入前点击元素": "False",
"ENG键盘": "False",
"输入完成等待时长": "1",
"等待元素出现时长": "30",
"点击后延时": "1"
},
"out": {},
"ins": "填写网页输入框"
}
]

参考