我正在尝试制作一个Robot框架测试,它将遍历不同的站点并登录到它们。有两种不同的登录过程,我已经为每一种编写了登录步骤。这些都存储为关键字。但我是通过CSV文件在URL中运行的。该文件包含URL和“login_type”,A或B。我想通过一个FOR循环来迭代此过程,我只需要在运行时调用该文件,CSV文件将负责其余的工作。
但是我收到一个错误消息,说“'url'必须是一个字符串。”我不确定我的问题是CSV文件还是我的循环结构错误。
*** Settings ***
Documentation Store URLs in CSV and identify login type
Library Zoomba.GUILibrary
Library Process
Library CSVLibrary
Library Collections
Resource ../resource.robot
Suite Teardown Close All Browsers
*** Variables ***
${browser} chrome
${url} https://example1.edu
${CSV_FILE} C:/CSV.csv
*** Test Cases ***
Example Test
${urls} Read Csv File To List ${CSV_FILE}
FOR ${url} IN @{urls}
Open Browser ${url} ${browser}
${login_type} Get CSV Data ${url} login_type
Run Keyword If '${login_type}' == 'TYPE A' A Login <--stored keyword
Run Keyword If '${login_type}' == 'TYPE B' B Login <--stored keyword
Log To Console ${url} verified.
END
下面是我使用的CSV文件。
我哪里做错了?有人能回答吗?
1条答案
按热度按时间uplii1fm1#
您应该尝试通过记录值来调试测试。例如,在
${urls} Read Csv File To List ${CSV_FILE}
之后,您可以有Log Many ${urls}
。然后检查为什么
${url}
不是真正的字符串,也可以尝试通过引用'${url}'
或"${url}"
强制它成为字符串。