我在 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 中没有项目。
没有足够的信息来确定帮助您。
例如,现有的ProductID.csv没有内容(因为您使用
Append to CSV file
而不是Create ...
),并且没有${ProductID}变量的初始值,也没有提供测试报告
但是我对你的情况有一些假设:
Read CSV ...
返回的阅读器数据应如下所示:
[[], ['A1'], ['B1'], ['C1'], ['D1'], ['E1']]
。因此,for 循环的第一次迭代将
[]
作为 ${element} 变量的值。因此,它没有任何元素,因此调用 ${element}[0]
会引发异常。
ProductID.csv
已经存在,并且有一个空行(换行符
或者
或两者)。当您使用 Append to CSV file,
时,新值将附加在包含新行的文件的现有内容之后。空行预计会被读取为空列表[]
或者写入 CSV 文件的初始数据的第一项为空列表。