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

Robot Framework调用自定义库传整数参数触发imread错误求助

问题原因分析

你遇到的问题核心是Robot Framework默认会把测试用例里的参数以字符串类型传递给Python库方法,而pyautogui.moveTo有两种调用逻辑:

  • 传入整数坐标:moveTo(x, y, duration) → 直接移动到指定坐标位置
  • 传入字符串路径:moveTo(image_path, duration) → 查找目标图片并移动到图片位置

当你在Robot测试用例里传600和200时,这两个参数是字符串类型,pyautogui误把第一个字符串参数"600"当成了图片路径,因此调用imread去读取这个“文件”,自然会触发文件不存在的报错。

解决方案

修改自定义Python库的move_mouse_to方法,将接收的x、y参数强制转换为整数:

import pyautogui

class robotautogui:
    def move_mouse_to(self, x, y, duration=0.0):
        # 强制转换为整数,避免字符串被当作图片路径
        x_int = int(x)
        y_int = int(y)
        pyautogui.moveTo(x_int, y_int, duration)

这样即使Robot传过来的是字符串类型的数字,也会被转为整数,pyautogui就会正确执行坐标移动逻辑,不会触发图片读取的分支。

验证说明

直接用Python调用时你传入的是整数,所以pyautogui走的是坐标移动分支;而Robot里未做类型转换的话,参数是字符串,触发了图片查找的逻辑,这就是两种调用方式结果不同的根本原因。

内容的提问来源于stack exchange,提问作者mr. Luvji

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:25:02