python - 在机器人框架中调用用户定义的测试库函数(带参数)时出现类型错误

标签 python robotframework

我在测试库中有用户定义的函数saveLogin,实现如下。

def saveLogin(userId,serialNo):
    conn = sqlite3.connect('new.db')
    conn.execute("INSERT INTO login VALUES(?,?)",userId,serialNo)
    conn.commit()

当我尝试调用这个函数时。 在测试用例 sessionTest 中,

sessionTest
    saveLogin    ${CRE_USER_ID}    1

出现以下错误:

sessionTest
          | FAIL |
**TypeError: function takes at most 2 arguments (3 given).**

当我只传递 1 个参数时

sessionTest
    saveLogin    ${CRE_USER_ID}

sessionTest
   | FAIL |
**Keyword 'getSequence.Save Login' expected 2 arguments, got 1.**

无法找出此错误的原因。

最佳答案

问题是 sqlite 函数execute 的参数。 执行函数最多需要 2 个参数。 修改函数 saveLogin 以将正确的参数传递给执行函数。 早些时候我传递了 3 个参数,因此出现了错误。

def saveLogin(userId,serialNo):
    conn = sqlite3.connect('new.db')
    values = ( userId,serialNo)
    conn.execute("INSERT INTO login VALUES(?,?)",values)
    conn.commit()

关于python - 在机器人框架中调用用户定义的测试库函数(带参数)时出现类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35256580/

相关文章:

python - 仅将列的 float 转换为整数

python - Homebrew Python 并写入/Library/Python/2.7/site-packages/?

python - numpy 排列 : how to make "precise" array of floats?

selenium - Robot Framework 更有效的方法到 "Sleep"

robotframework - 如何使用 RobotFrameWork 测试两个日期是否不同

robotframework - 如何在 RobotFramework 中使用具有默认值的用户关键字参数

python - 想要抓取所有成员(member)个人资料链接以获取成员(member)详细信息

python - 使用 Anaconda 安装 OSMnx

python - Robot Framework - 从表中获取跨度元素

selenium - Robot Framework 验证打开了一个新的浏览器选项卡