Robot Framework使用DB查询所得索引变量调用select from list by index报错如何解决
问题解决方法
报错根因
从数据库查询得到的${inp_msge_type}变量为整数类型,而SeleniumLibrary的Select From List By Index关键字要求索引参数为字符串格式,因此触发类型不匹配报错。硬编码传入数字7时,Robot Framework底层会自动将其转换为符合要求的字符串格式,因此可以正常运行。
可行解决方案
方案1:提前转换变量类型
调用Robot Framework内置的Convert To String关键字,先将整数类型的索引转换为字符串类型后再传参:
# 先执行类型转换 ${inp_msge_type_str} Convert To String ${inp_msge_type} # 再调用下拉选择关键字 select from list by index ${locator_var} ${inp_msge_type_str}
方案2:传参时内联转换(适合3.2及以上版本Robot Framework)
直接在传参时通过内联Python表达式完成类型转换,无需额外步骤:
select from list by index ${locator_var} ${str(${inp_msge_type})}
方案3:引号包裹变量(快速兼容方案)
传参时直接用英文双引号包裹变量,强制按字符串格式解析:
select from list by index ${locator_var} "${inp_msge_type}"
内容的提问来源于stack exchange,提问作者PVG
相关产品推荐
相关产品推荐

