如何将SQL查询结果分配给变量(Robot Framework)以在应用程序编辑文本中输入?

Ram*_*man 2 python database robotframework

使用MySQL和Robot Framework结合机器人数据库和pymysql库.

Connecting Database
Connect to database                         pymysql  ${DB_NAME}  ${DB_USER_NAME}  ${DB_USER_PASSWORD}  ${DB_HOST}  ${DB_PORT}
Sleep                                       ${wait_time}
Log to console                              Database Connection is established successfully!
Run Code Online (Sandbox Code Playgroud)

并且能够获取DB表数据并打印在IDE控制台上.问题是无法将查询结果分配给机器人变量以输入应用程序内的编辑文本.

${queryResult1}                             QUERY  SELECT COLUMN1 FROM  ${TABLE_NAME};
${query_results}                            Selenium2Library.Get Text  ${queryResult1}
Log to Console                              ${query_results}
Run Code Online (Sandbox Code Playgroud)

应用脚本

Sleep                               5s
Selenium2Library.Input Text                          ${username}     ${query_results}}
Sleep                               5s
Selenium2Library.Input Text                          ${password}     ${query_results}}
Sleep                               5s
Selenium2Library.Click element                       ${login_button}
Run Code Online (Sandbox Code Playgroud)

Tod*_*kov 5

数据库库中查询的返回值是元组列表 - 每个列表成员都是响应行,元组是其中的列值.
当您queryResult1在关键字中使用时,您实际上正在使用这个二维对象 - 而不是数据库中的文本,正如您可能预期的那样.

要获得你必须"解包"对象后的价值; 假设您想从第一行获取第一列,这是最简单的方法:

${DB value}=    Set Variable    ${queryResult1[0][0]}
Run Code Online (Sandbox Code Playgroud)

第一个索引是行号,第二个是列; 指数从零开始.

然后您可以${DB value}在后续关键字中使用.