获取当前屏幕缩放比例

描述

获取运行该指令的电脑当前屏幕缩放比例,输出浮点数用于运算。

Windows 10 屏幕缩放比例设置位置:右键桌面后点击显示设置,此处的数值就是屏幕当前缩放比例。

配置项说明

指令无输入,无需配置。仅输出缩放比例的数值。

使用示例 1

流程执行逻辑:

获取当前屏幕缩放比例,保存在 scaling 中 -> 打印 scaling

结果:

使用示例 2(点选验证码实例)

本示例用 https://dun.163.com/trial/picture-click 演示影刀自动完成需要点选三个汉字的验证码。验证码截图的坐标只会返回图片的像素坐标,是一个绝对的坐标;而影刀的移动鼠标的坐标为了适配不同屏幕,已经自动换算成了100%缩放下的坐标,是一个相对坐标,所以点击前需要用本指令将绝对坐标转化为相对坐标。

具体规则:指令返回的距离(绝对坐标) ÷ 屏幕缩放比例 = 需要移动的坐标(相对坐标)

编写思路:捕获包含验证码点选区域和验证码题目的网页元素,在验证码识别指令中选择该元素(该元素会被截图后传给平台做判断),之后用验证码识别指令返回的坐标结果,点击这个网页元素的相对位置(用点击元素指令高级中的点击自定义位置功能)。

元素捕获和校验:

流程截图:

验证码识别指令配置:

选择点选三个坐标,图片来源选择网页元素并选择刚刚捕获的包含题目和验证码点选区域的元素。

点击元素指令配置:

验证码识别给出的结果形如 597,338|283,338|413,371,不同的坐标点用|分割开,一个坐标的横纵坐标用逗号分隔开。用从文本中提取内容指令提取成形如['597', '338', '283', '338', '413', '371']的列表(变量名为content),再按索引在列表中取想要的坐标,比如content[0]是第 1 个需要点选的坐标的横坐标,content[1]是第 1 个需要点选的坐标的纵坐标,content[2]是第 2 个需要点选的坐标的横坐标,以此类推。

横向偏移内容:int(int(content[0]) / scaling)

纵向偏移内容:int(int(content[1]) / scaling)

将用从文本中提取内容指令提取出来的文本转化为整数(int()),除以屏幕缩放(scaling)后再次转为整数,作为对应方向的偏移量(相对坐标)。偏移相对位置需要选择左上角(九宫格的第一个),因为验证码识别指令返回的坐标的坐标原点也是元素截图的左上角位置。

流程执行逻辑:

获取已打开的网页对象,保存到web_page -> 鼠标悬停在元素点此进行验证按钮上(触发验证码操作区域出现) -> 截图包含题目和验证码点选区域的元素并上传给平台处理,将返回结果保存在captcha_result中 -> 打印captcha_result -> 从captcha_result中提取所有数字,保存在列表content中 -> 打印content -> 获取当前屏幕缩放比例,保存在scalling中 -> 打印scaling -> 分别设置三个坐标的横纵偏移量给点击元素指令,点击三次(点击元素的操作目标需要和传给验证码识别指令的元素为同一个元素)

执行结果:

问题没有解决?去社区提问 all right reserved,powered by Gitbook

results matching ""

    No results matching ""