我已成功连接到我的数据库;我正在尝试运行一个 sql 查询并将表的第一个值获取到我的结果中,以便在我的测试步骤中进一步使用它。现在,我收到“TypeError:序列项 0:预期字符串,找到十进制”错误。请就如何从数据库表中获取单个值并将其放入屏幕字段以继续执行测试用例提出宝贵的想法。
请注意,我的sql查询结果都是整数类型值,但我仍然不知道为什么系统说找到小数。
下面是我的代码:
Connect to Database pymssql DBNAME UNAME PWD PORTNO ${QueryResult}= Query SelectQuery Log ${QueryResult[0]} Inputtext id ${QueryResult[0]}
我的日志关键字的输出是 (Decimal('2'),)
,它应该是一个表值 2。
在此之后,系统尝试将 (Decimal('2'),)
输入到字段中,并抛出上述错误。
最佳答案
您遇到了两个问题;第一个是——sql 查询的结果集是一个元组列表,例如二维结构。
每个列表成员(一个元组)是响应的一行;每个元组成员是该行中的一列。运行 Log
时可以看到:
Log ${QueryResult[0]}
# the output is
# (Decimal('2'),)
# e.g. "a single row, that has only one column" - just one tuple member
,这是整行。因此,要获得实际值,如果它在第一列中,则必须指定它:
${value}= Set Variable ${QueryResult[0][0]}
# if you run Log on it, the output most probably looks like this:
# Decimal('2')
现在您有了值,但是您遇到了第二个问题 - 它的数据类型是复杂的 Decimal 类型。一般来说,这应该不是问题 - RF(实际上是 python)应该能够自动转换它,但是如果错误仍然存在/或者为了更加确定,您可以在 中使用它之前将其转换为字符串输入文本
:
${value}= Convert To String ${value} # now it's no longer Decimal, but plain str type
Input Text id ${value}
顺便说一句,不相关 - 我认为赋予 Input Text
关键字的定位器“id”不正确,只是复制了您在示例中使用的内容。
关于sql-server - SQL 查询 - "TypeError: sequence item 0: expected string, Decimal found"使用值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51382000/