在机器人框架中调用列表值时会返回错误“List '${element}'在索引 0 中没有项目”

问题描述 投票:0回答:1

我在 Pycharm 中使用 Robot Framework、Selenium 库。我需要从下表中获取产品 ID,然后将其保存在列表中

下面的代码用于创建列表

${list}=   Create List   ${ProductID}
    ${data}=    create list    ${list}
    Append To Csv File     ProductID.csv     ${data}

我得到了 CSV 格式的值

然后在另一个脚本中调用保存的值,例如

${rows} =  get element count   xpath=//*[@id="YearlyReport"]/tbody/tr
    sleep  2
    log to console   Total Rows ${rows}

  ${ProductID}=     Read Csv File To List      ProductID.csv
  FOR    ${element}    IN    @{ProductID}
        Log To Console   ${element}[0]

   FOR    ${rowno}    IN RANGE    1    ${rows}+1

    Input Text    xpath=//input[@placeholder='Search ...']    ${element}[0]
    sleep   5


    ${Details} =   Get Text    xpath=//*[@id="YearlyReport"]/tbody/tr[${rowno}]/td[10]
    log to console  In Search Stage of ${Details}[0] is ${Details}

出现以下错误

列表“${element}”在索引 0 中没有项目。如果我将值更改为 1,则会给出相同的错误列表“${element}”在索引 1 中没有项目。

python list selenium-webdriver pycharm robotframework
1个回答
0
投票

没有足够的信息来确定帮助您。

例如,现有的ProductID.csv没有内容(因为您使用

Append to CSV file
而不是
Create ...
),并且没有${ProductID}变量的初始值,也没有提供测试报告

但是我对你的情况有一些假设:

  1. 由于屏幕的原因,您的 Excel 文件的顶部单元格实际上有一个空值。 因此,
    Read CSV ...
    返回的阅读器数据应如下所示:
    [[], ['A1'], ['B1'], ['C1'], ['D1'], ['E1']]

因此,for 循环的第一次迭代将

[]
作为 ${element} 变量的值。因此,它没有任何元素,因此调用
${element}[0]
会引发异常。

  1. 这可能是以下两种情况之一: 文件
    ProductID.csv
    已经存在,并且有一个空行(换行符 或者 或两者)。当您使用
    Append to CSV file,
    时,新值将附加在包含新行的文件的现有内容之后。空行预计会被读取为空列表
    []

或者写入 CSV 文件的初始数据的第一项为空列表。

© www.soinside.com 2019 - 2024. All rights reserved.