Creator 版本6.0.1

2024/1/8 在最新的文档中介绍了对目标的选择和目标选择器的使用
https://documents.laiye.com/rpa-guide/docs/DevGuideD1/Chapt3-Target
直接用命令里的获取目标只适合目标的名称不会变化的. 如果目标的名称会变, 就只能用目标选择器去拆解目标.
按官方文章给出的方法, 可变目标名称一个是将aaname改为*, 但会增加错选的概率. 另一个是通过目标选择器(UI分析器)选择上级的不变目标, 再用获取子元素的命令获取子元素, 再从子元素中找到想要的目标.

Creator 研究版本: 5.5.0

对Chrome浏览器的选择

鼠标点击目标为例,

一个典型的选择器

  {
    wnd: [
      { cls: "Chrome_WidgetWin_1", title: "*", app: "chrome" },
      { cls: "Chrome_RenderWidgetHostHWND", title: "Chrome Legacy Window" },
    ],
    html: [{ tag: "SPAN", parentid: "body", aaname: "idarc", idx: 0 }],
  }

wnd应为window的缩写, 对于Chrome的窗口的选择代码死树是固定的.
html因为对具体页面的选择.
tag: 为选择文本的标签名
parentid: 上级中最近一个有id的标签的id. 这儿正好是body, 但不是指body标签.
aaname: 标签内的文字. 不加通配符是需要精确匹配的. 另外试过是支持*?通配符, 用法和正则一样. 其他正则符号似乎就不支持了.
idx: index的简称, 在parentid的标签内可能有出现了多个tag, 其中的文字也是相同的, 这个idx是第几个的意思. 从0开始计数.
如果tag能定位, 则不需要parentid, 其他的键也类似.

点击table内的一个单元格

    html: [
      { tag: "TABLE", parentid: "J_Reviews" },
      { tag: "TD", tableRow: "2", tableCol: "3" },
    ]

html数组中的值是依次缩小搜索范围的.
定位某一个单元格TD, 出现了两个新的键名: tableRowtableCol, 分别是行数和列数. 这儿注意, 行数和列数是从1开始数的.

点击一个图片

    html: [
      {
        tag: "IMG",
        parentid: "J_Reviews",
        "css-selector":
          "body>div>div>div>div>div>div>div>div>div>div>table>tbody>tr>td>div>div>div>ul>li>img",
        src:
          "//img.alicdn.com/bao/uploaded/i4/O1CN012qd0b21L8NLDRJi8f_!!0-rat*",
      },
    ]

这儿出现了另两个新键名:
css-selector: css选择器. 但是这个里面没有出现id和class的选择器. 试了一下, class选择器.似乎是不支持的.
src: 可以写入src. 其中似乎可以使用*通配符.

内嵌与chrome中的目标选择器JSON生成工具

参考: https://zhuanlan.zhihu.com/p/90916040?from_voters_page=true
位置在F12->Elements,然后点击中间Styles菜单行最后的>>,选择UiBot.
用Chrome自己的选择器选择目标后, 再点击Uibot中的生成选择器生成选择器(CSS selector)生成选择器JSON代码.
普通选择器样式:

{
    "html": {
        "tagName": "P",
        "attrMap": {
            "tag": "P",
            "isleaf": "1"
        },
        "index": 24
    },
    "wnd": [
        {
            "app": "chrome",
            "cls": "Chrome_WidgetWin_1",
            "title": "*"
        },
        {
            "cls": "Chrome_RenderWidgetHostHWND",
            "title": "Chrome Legacy Window"
        }
    ]
}

CSS选择器样式:

{
    "html": {
        "tagName": "p",
        "attrMap": {
            "css-selector": "body>div>div>main>div>article>div>div>p"
        },
        "index": 34
    },
    "wnd": [
        {
            "app": "chrome",
            "cls": "Chrome_WidgetWin_1",
            "title": "*"
        },
        {
            "cls": "Chrome_RenderWidgetHostHWND",
            "title": "Chrome Legacy Window"
        }
    ]
}

标签: none 阅读量: 1581

添加新评论