简单自动化测试:airTest vs 按键精灵

本文讲述了如何使用按键精灵和airTestIDE解决公司要求的网络课程学习问题,包括视频自动播放、课程切换和弹窗处理,展示了从基础操作到高级自动化的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近,公司要求大家学习网络课程,有课时要求,而且麻烦的是视频每5分钟都需要点击一次,不然就卡住不动了。

当同事们八仙过海各显神通(用各种浏览器开N个小窗口)时,猫儿从记忆的犄角旮旯扒拉出了一款神器——按键精灵。

通过简单的录屏,生成按键小精灵.exe,果然可以实现每隔固定时长点击一次的效果。大概长这样:

后来呢,猫儿发现脚本的功能性太弱了,仅仅做到了隔时点击,要切换课程还需要手动,实在不好用啊。抓耳挠腮之际,1_bit大神推荐了“几分钟就能搞定”的airTestIDE。

不得不说,airTest很好用,只要有点python基础,想要操作屏幕上某元素只需要截个图放在代码里,就像玩游戏一样。于是猫儿的野心逐渐膨胀,从最初的单视频隔时点击->多视频自动切换->网课系统一键登录,做的可谓顺风顺水。唯一遇到的绊脚石就是在进入某门课程时会弹出“上次您学到了XX分钟,要继续学习吗”的提示,最后也用try-catch语句解决了。美哉!代码大概长这样:

以上为登录部分,考虑用户一次学不完,增加了选学课程参数。

以上将用户已选课(要运行该程序,只能预先选好课)存储为列表,通过循环依次读取。在每节课的内部循环隔时点击,用try-catch语句对弹出窗口点确认,防止程序中断。

运行完美,虽然最后还是用1倍速学完的……T_T

<think>好的,用户的问题是关于微信小程序游戏《百炼英雄》在电脑版使用按键精灵时,主城界面传送到其他界面后找色失败的问题,需要解决方法。首先,我需要理解用户的具体情况。用户可能在模拟器上运行微信小程序,然后使用按键精灵进行自动化操作,比如自动任务、点击等。主城界面切换到其他界面后,颜色检测失败,导致脚本无法继续执行。 首先,我应该考虑找色失败的可能原因。常见的原因包括: 1. **界面变化导致颜色位置变化**:不同界面下,目标按钮或元素的坐标可能不同,导致找色失败。 2. **颜色值变化**:游戏在不同场景可能有不同的色调、亮度,或者元素本身的颜色有细微变化,导致颜色匹配失败。 3. **分辨率或缩放问题**:模拟器的分辨率设置与脚本编写时不同,或者游戏界面缩放比例变化,导致坐标偏移。 4. **延迟加载或动画效果**:界面切换时有加载时间或动画,脚本执行速度过快,未能等待界面完全加载。 5. **按键精灵的找色参数设置**:比如偏色范围、相似度设置不合适,导致无法正确识别颜色。 接下来,我需要针对这些可能的原因,给出相应的解决步骤建议。 针对第一个问题,界面变化导致坐标不同,可能需要使用相对坐标或者动态获取元素位置。比如,通过查找界面中的特定标识(如界面标题、图标)来确定当前所在界面,然后调整目标坐标。或者,使用多点找色或特征匹配,而不是单一的固定坐标点。 第二个颜色值变化的问题,可能需要重新抓取目标颜色,并适当调整偏色范围相似度。按键精灵的找色功能通常允许设置偏色(比如RGB的偏差范围)相似度(比如0.9表示90%相似),适当扩大这些参数可以提高匹配成功率,但要注意不要过于宽松导致误匹配。 第三个分辨率或缩放问题,用户需要确保模拟器的分辨率缩放比例与脚本开发时一致。如果需要在不同分辨率下运行,可能需要编写自适应分辨率的脚本,比如获取当前窗口大小,然后根据比例计算坐标。 第四个延迟加载的问题,需要在界面切换后增加适当的等待时间,比如使用Delay命令,或者循环检测某个元素是否出现,再继续执行后续操作。这样可以避免在界面未完全加载时进行找色操作。 第五个参数设置问题,用户需要检查找色命令中的参数,比如是否设置了合适的偏色相似度。可能需要重新抓取颜色,并在不同场景下测试,调整参数直到稳定识别。 此外,还可以考虑使用其他方法辅助定位,比如找图(图像识别)代替找色,因为图像识别可能对颜色变化不敏感,只要整体图案一致即可。或者结合多种条件判断,比如同时检测多个颜色点或图像特征,提高准确性。 如果用户使用的是按键精灵的默认找色功能,可能需要更复杂的脚本来处理动态界面。例如,在传送后先检测是否成功进入目标界面,通过多次尝试找色,或者切换到备用坐标颜色方案。 最后,建议用户进行调试,比如在找色失败时截图,查看当前界面的实际颜色坐标,与脚本中的设置进行对比,找出差异并调整参数。同时,可以在脚本中加入日志输出,记录执行步骤找色结果,帮助排查问题。 总结可能的解决方案步骤: 1. **确认界面坐标正确性**:确保在目标界面中,要查找的颜色点坐标正确,可能需要重新抓取坐标。 2. **调整颜色参数**:重新抓取颜色,设置适当的偏色相似度。 3. **处理分辨率或缩放问题**:检查模拟器设置,或编写自适应分辨率的脚本。 4. **增加等待时间或循环检测**:在传送后等待足够时间,或循环检测直到找到颜色。 5. **使用多点找色或图像识别**:增加更多的参考点或改用找图功能。 6. **调试日志记录**:通过截图日志分析问题原因,逐步调整脚本。 需要将这些步骤以清晰的方式传达给用户,可能需要分点说明,并给出具体的代码示例,比如如何在按键精灵中设置找色参数,如何添加延迟,或者如何使用循环检测。同时,提醒用户注意游戏更新可能导致界面变化,需要定期维护脚本。</think>针对在《百炼英雄》中使用按键精灵电脑版传送到其他界面后找色失败的问题,以下是分步解决方案: --- ### **1. 确认界面加载完成** - **原因**:界面切换可能有加载动画或延迟。 - **解决方法**: 在传送后添加等待时间(例如 `Delay 2000`),或使用**循环检测**目标颜色是否出现,避免立即找色。 ```vbscript Do Delay 500 FindColor = CmpColorEx("目标颜色坐标", 0.9) Loop Until FindColor <> "-1|-1" ``` --- ### **2. 调整颜色参数** - **原因**:不同界面光线/色调变化导致颜色值差异。 - **解决方法**: - 使用按键精灵的**抓抓工具**重新截取颜色,扩大偏色范围(如 `202020-404040`)。 - 降低相似度(例如从 `1.0` 改为 `0.9`),代码示例: ```vbscript FindColor 0, 0, 1920, 1080, "颜色值", 0.9, 0, x, y If x > -1 Then Tap x, y End If ``` --- ### **3. 处理分辨率与坐标偏移** - **原因**:模拟器分辨率或窗口缩放导致坐标错误。 - **解决方法**: - 保持模拟器分辨率与脚本开发时一致(如 1280x720)。 - 使用**相对坐标**(基于屏幕比例动态计算): ```vbscript screenWidth = GetScreenX() screenHeight = GetScreenY() targetX = screenWidth * 0.8 ' 假设原坐标在 80% 宽度处 targetY = screenHeight * 0.2 ``` --- ### **4. 使用多点找色或图像识别** - **原因**:单一颜色点容易受干扰。 - **解决方法**: - 在按键精灵中设置**多点找色**(CmpColorEx),添加多个特征点。 - 或用**找图功能**(FindPic)代替,对整体图案进行匹配。 --- ### **5. 调试与日志记录** - **原因**:快速定位失败原因。 - **解决方法**: - 在找色失败时截图保存,对比实际颜色与脚本设置。 - 添加调试信息输出: ```vbscript FindResult = CmpColorEx("颜色参数", 0.9) TracePrint "找色结果:" & FindResult ``` --- ### **6. 备用方案(关键操作容错)** - **原因**:防止脚本卡死。 - **解决方法**: 设置最大重试次数,超过后自动返回主城或重启: ```vbscript Retry = 0 Do While Retry < 5 If FindColor(...) Then Exit Do Else Retry = Retry + 1 Delay 1000 End If Loop If Retry >=5 Then Tap 返回按钮坐标 ' 执行返回操作 End If ``` --- ### **注意事项** - 游戏更新可能导致界面变化,需定期维护脚本。 - 避免使用绝对坐标,优先依赖界面特征(如“背包”图标)定位。 通过以上步骤,可显著提高找色稳定性。若仍存在问题,建议结合按键精灵的`区域模糊找色`功能或改用更专业的自动化工具(如`Auto.js`或`AirTest`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值