-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Labels
bugSomething isn't workingSomething isn't working
Description
What happened?
我用的是element plus框架做的一个系统后台
ai会去识别点击Clicked element ([14]
我后续只能通过新增一个tool
`click_menu_by_name: tool({
description: '【最高优先级】专门用于点击或展开左侧菜单。当需要操作菜单时,必须调用此工具。',
inputSchema: z.object({
menuName: z.string().describe('需要点击的菜单名称,例如"餐厅管理"'),
isSubMenu: z.boolean().describe('如果是带有下级菜单的父目录,填 true;如果是没有下级的最终页面菜单,填 false')
}),
execute: async function (input) {
// 因为 page-agent 运行在当前页面,我们可以直接使用 document 对象
const selector = input.isSubMenu ? '.el-sub-menu__title' : '.el-menu-item';
const elements = document.querySelectorAll(selector);
for (let el of elements) {
// 模糊匹配包含目标文本的 DOM 节点
if (el.textContent.trim().includes(input.menuName)) {
// 触发原生 DOM 点击事件
(el as HTMLElement).click();
// 如果是点击父目录,Element 会有展开/收起动画,人为暂停 500ms 等待 DOM 更新完毕
if (input.isSubMenu) {
await new Promise(resolve => setTimeout(resolve, 500));
}
return `执行成功:已点击菜单 [${input.menuName}]。请观察页面结构是否发生了变化。`;
}
}
return `执行失败:在当前页面找不到名称包含 "${input.menuName}" 的菜单。如果它是子菜单,请确认它的父级目录是否已经展开。`;
}
})`
这样的方式进行点击
Code
<ul data-v-b7b5ac2c="" role="menubar" class="el-menu el-menu--vertical el-menu-vertical" style="--el-menu-level: 0;"><li data-v-b7b5ac2c="" class="el-sub-menu" role="menuitem" ariahaspopup="true" aria-expanded="false"><div class="el-sub-menu__title"><i data-v-b7b5ac2c="" class="el-icon"><svg data-v-b7b5ac2c="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="currentColor" d="M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m320 320v-96a96 96 0 0 0-96-96H288a96 96 0 0 0-96 96v96a32 32 0 1 1-64 0v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 1 1-64 0"></path></svg></i><span data-v-b7b5ac2c="">家庭管理</span><i class="el-icon el-sub-menu__icon-arrow" style="transform: none;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="currentColor" d="M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"></path></svg></i></div><ul role="menu" class="el-menu el-menu--inline" style="--el-menu-level: 1; display: none;"><!-- 子菜单没有下级的情况 --><li data-v-b7b5ac2c="" class="el-menu-item" role="menuitem" tabindex="-1"><i data-v-b7b5ac2c="" class="el-icon"><svg data-v-b7b5ac2c="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="currentColor" d="M832 384H576V128H192v768h640zm-26.496-64L640 154.496V320zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h160v64H320zm0 384h384v64H320z"></path></svg></i><span data-v-b7b5ac2c="">家庭列表</span></li><!-- 子菜单没有下级的情况 --><li data-v-b7b5ac2c="" class="el-menu-item" role="menuitem" tabindex="-1"><i data-v-b7b5ac2c="" class="el-icon"><svg data-v-b7b5ac2c="" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><path fill="currentColor" d="M832 384H576V128H192v768h640zm-26.496-64L640 154.496V320zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h160v64H320zm0 384h384v64H320z"></path></svg></i><span data-v-b7b5ac2c="">家庭审核管理</span></li></ul></li></ul>Browser
No response
version
No response
Community Communication / 社区沟通
- I will be polite and respectful. / 我会保持礼貌与尊重。
- I will share constructive, actionable suggestions. / 我会提供建设性、可行动的建议。
- I have read the Code of Conduct. / 我已阅读行为准则。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working