You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Automation Anywhere开发:JS提取MUI元素并执行指定操作的求助

解决方案

你的代码问题分析

  • 第一个代码里,for循环刚执行第一次就用return终止了,根本没遍历所有元素,自然拿不到完整的元素数组。
  • 用getElementsByClassName时,不能直接写多个空格分隔的类名(比如"MuiButtonBase-root MuiCardActionArea-root"),这个方法只支持单个类名,多类名要改用querySelectorAll。

完整实现代码

下面是满足你需求的完整脚本,可直接在Chrome控制台运行:

// 1. 刷新页面,等待页面加载完成后执行后续逻辑
location.reload();
window.addEventListener('DOMContentLoaded', () => {
  // 替换成你要查找的指定文本
  const targetText = '你的目标文本';
  
  // 2. 获取所有目标MUI Grid元素(或者替换成你需要的a标签选择器)
  // 如果是找MuiGrid-container:
  const gridElements = document.querySelectorAll('.MuiGrid-container');
  // 如果是找那个a标签:
  // const gridElements = document.querySelectorAll('.MuiButtonBase-root.MuiCardActionArea-root');

  // 3. 遍历元素,检查文本并打开新标签页
  gridElements.forEach(element => {
    if (element.innerText.includes(targetText)) {
      // 如果是a标签,直接获取href打开
      if (element.tagName === 'A') {
        window.open(element.href, '_blank');
      } else {
        // 如果不是a标签,找里面的链接(根据实际页面结构调整)
        const link = element.querySelector('a');
        if (link) window.open(link.href, '_blank');
      }
    }
  });
});

关键说明

  • querySelectorAll支持CSS选择器语法,多类名用.连接(比如.class1.class2),表示同时拥有这两个类的元素。
  • 用DOMContentLoaded确保页面完全加载后再查找元素,避免因为页面未渲染完找不到元素。
  • forEach遍历比for循环更简洁,也不会出现提前return的问题。
  • 打开新标签页用window.open,如果是a标签也可以先设置element.target = '_blank'再调用element.click(),效果一致。

内容的提问来源于stack exchange,提问作者steve d.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 16:15:24