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

Robot Framework列表页标题验证报错:期望参数为列表类对象,实际为字符串

解决Robot Framework报错:Expected argument 1 to be a list or list-like, got string instead

报错原因

你的脚本在使用Append To List关键字时参数传递错误:当你用@{list}作为第二个参数传入时,Robot Framework会将这个仅含单个元素的列表展开成独立的字符串参数,触发Append To List的参数格式校验,从而抛出"期望参数为列表/类列表对象,实际传入字符串"的错误。

问题代码分析

原脚本中每次循环都把${element.text}包装成新列表@{list},再尝试添加到目标列表:

FOR        ${element}   IN        @{elements}
           @{list} =  Create List        ${element.text}
            Log         ${element.text}
            Append To List        @{actualList}        @{list}
END

这里的@{list}会被Robot Framework解析为单个字符串(而非列表),不符合Append To List的参数要求。

修正方案

方案1:直接添加单个元素(推荐)

无需额外创建子列表,直接将商品文本字符串添加到目标列表:

Validate items title on list page 
    @{expectedList} =  Create List    Iphone X    Samsung Note 8     Nokia Edge    Blackberry
    @{elements} =  Get WebElements         css:.card-title
    @{actualList} =  Create List
    FOR        ${element}   IN        @{elements}
        Append To List        ${actualList}        ${element.text}
        Log         ${element.text}
    END

方案2:保留子列表逻辑(如需)

如果必须保留创建子列表的步骤,需要用${list}引用列表变量(而非@{list}),避免列表被展开:

Validate items title on list page 
    @{expectedList} =  Create List    Iphone X    Samsung Note 8     Nokia Edge    Blackberry
    @{elements} =  Get WebElements         css:.card-title
    @{actualList} =  Create List
    FOR        ${element}   IN        @{elements}
        @{list} =  Create List        ${element.text}
        Log         ${element.text}
        Append To List        ${actualList}        ${list}
    END

关键说明

  • ${variable}用于引用整个列表变量,传递给关键字时会保留列表结构。
  • @{variable}会将列表展开为多个独立参数,仅在需要批量传递多个值时使用。

内容的提问来源于stack exchange,提问作者prashant gautam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 00:00:07