获取win元素的文本内容的方法
评论
收藏

获取win元素的文本内容的方法

经验分享
西
西南
2025-01-24 16:30·浏览量:1553
西
西南
发布于 2025-01-24 16:301553浏览

问题背景:

在使用桌面软件的时候,会需要获取元素的文本内容进行后续的操作处理,然而我们使用【获取元素信息(win)】这个指令去拿元素文本内容时,常常会发现拿到的是一个空值,拿不到想要的文本。不过别担心!有了这篇文章,这个问题将会迎刃而解。

下面我来介绍几种获取元素文本的方式


解决方案:

1.第一个出场的自然是我们的【获取元素信息(win)】指令,我们正常捕获元素并使用此指令。当然,别忘了选择“获取元素文本内容”。

如果能获取到,那就万事大吉,如果获取不到,那么就要使用这个指令的另一个操作了(获取元素值),典型案例如:企业微信的某些元素,用正常的“获取元素文本内容”是拿不到数据的,只有使用“获取元素值”才可以正确拿到。


2.第二个出场依旧是【获取元素信息(win)】,不过这次有一个强力的外援【获取元素全部属性】。通过使用【获取元素全部属性】获取到元素的全部属性后(会返回一个字典类型的变量),我们再搭配【获取元素信息(win)】的获取元素属性,从而拿到藏在指定属性中的文本内容。


3.第三个登场的是【批量数据抓取(win)】,它通过递归的方式获取元素全部节点的信息,并返回一个二维列表,具体的实现和结果展示我就放在文章最下面的链接啦。


4.最后登场的指令是【获取元素所有文本】,和【批量数据抓取(win)】一样,它也是通过递归的方式获取元素全部节点的文本,区别在于他返回的是一个字符串类型。


如果上面的四种方式都获取不到文本呢,别担心!我们还有兜底方案,那就是通过ocr识别,从而拿到相应的值。这里我们以【通用文字识别】举例。


如果目标元素不能捕获,那该怎么获取呢,这里分两种情况

情况1.如果目标文本在当前窗口是固定的位置,那我们可以通过固定的坐标来找到目标元素从而用ocr识别出来


情况2.如果目标元素的位置在当前激活的窗口不是固定的,但是对于窗口中的某个可以捕获的元素A来说,位置是固定的。此时我们可以利用A的坐标去计算出目标元素的坐标,从而用ocr识别出来。示例如下:(此处坐标仅用作测试,具体使用需要根据实际位置关系去计算)


以上就是这次分享的内容啦,如果大家有更好的方法也可以在评论区分享出来,一起学习~

Ps:关于【批量数据抓取(win)】【获取元素所有文本】等指令的用法示例大家可以去哔哩哔哩( 点击跳转视频链接 )查看,对于视频内容感兴趣的话,可以关注一下up主~(一键三连!!!),up主也会多多分享一些使用影刀的小tips。如果有想了解的主题可以评论区留言,up主会尽力为大家安排~

收藏6
全部评论1
最新
发布评论
评论