获取网页元素(XPath)
指令说明
通过 XPath 在指定网页及该网页的全部 iframe 中查找元素。查找成功后会在页面 DOM 中为该元素设置 ms-rpa-id,并返回 WebElement 对象。
该指令适合已经明确知道稳定 XPath 的场景,例如通过网页源码、浏览器开发者工具或 AI 网页结构分析得到 XPath 后,直接获取元素对象。
指令输入参数
| 输入参数 | 输入参数类型 | 说明 |
|---|---|---|
| 网页对象 | WebPage | 要查找元素的网页对象 |
| XPath | str | XPath 表达式,例如 //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": "填写网页输入框"
}
]