如何在 Robot Framework 中将数据附加到 csv 文件?

Posted

技术标签:

【中文标题】如何在 Robot Framework 中将数据附加到 csv 文件?【英文标题】:How to append data to csv file in Robot Framework? 【发布时间】:2017-12-21 14:21:36 【问题描述】:

我想将数据附加到现在在 Robot Framework 中不为空的 .csv 文件中,但我遇到了一些问题。

我从 github 中的“robotframework-CSVLibrary”的“s4int”安装了 CSVLibrary,它有一个名为“Append To Csv File”的关键字。我可以将数据附加到 .csv 文件中,但格式存在一些问题。

首先我有一个空的 csv 文件,然后在 Robot Framework 中运行我的脚本。

*** Settings ***
Library           Selenium2Library
Library           CSVLibrary

*** Variables ***

*** Test Cases ***
test
$list=    Create List    apple    pear
Append To Csv File    $file_path    $list   

文件如下所示:

但我期望的是:

!

如何附加数据以显示我所期望的?我的格式错了吗?或者还有其他方法可以实现吗? 非常感谢。

【问题讨论】:

使用Append To Csv File $file_path @list的结果是什么? 对我来说,它看起来像一个错误。 谢谢你们。它适用于 Bryan 的回答。 【参考方案1】:

如果您需要先清除文件,然后再向其中写入其他数据,那么您可以为您的机器人框架脚本使用以下关键字。

您可以直接使用代码并创建一个名为CSVLibrary.py 的库并开始使用它。然后你可以将它调用到你的脚本中。提供带有\\ 斜杠的文件路径以在机器人框架中工作。例如:E:\\FOLDER1\\FOLDER2。您可以像提供$list=Create List apple pear 一样提供数据。

import csv

class CSVLibrary():   

def Clear_file(self, filepath):                    #  Clear_file :it will clear your file. 
 with open(filepath, 'w+') as f:
     obj1=csv.writer(f)

def Append_file(self, filepath, data):             #  Append_file :it will append the data you wanted to in your script. 
  with open(filepath, 'a') as f:
      obj1=csv.writer(f)
      obj1.writerow(data) 

【讨论】:

【参考方案2】:

对于您正在使用的库,Append to csv file 似乎需要一个列表列表。每个列表代表一行,每个子列表代表该行中的列。

由于您希望“apple”和“pear”位于同一行,因此您需要将它们放在一个列表中,然后将该列表放入另一个列表中。

*** Test Cases ***
test
    $list=    Create List    apple    pear
    $data=    create list    $list
    Append To Csv File    $file_path    $data  

【讨论】:

我发现使用“$list= Create List\apple pear”可以解决。

以上是关于如何在 Robot Framework 中将数据附加到 csv 文件?的主要内容,如果未能解决你的问题,请参考以下文章

在 If / Else 语句中将文本存储到标量中 - Robot Framework

如何在临时 sql server 上使用带有 Robot Framework 的数据库库

在 Robot framework 数据驱动方法中生成测试用例

Robot Framework 如何获取文本项

在 Robot Framework 中,如何通过为文本文件中的每一行数据创建单独的测试用例来执行数据驱动测试?

如何将数据驱动的概念应用于 Robot Framework 中的用户关键字?