【问题标题】:Loop in loop robot framework循环机器人框架
【发布时间】:2018-08-09 02:33:35
【问题描述】:

我有 2 个包含类似数据的 txt 文件:

Account.txt 
12345
12346
12347

Card.txt
1111
2222
3333

我想同时循环两个txt文件并输入到文本框卡和文本框帐户。

<form action="">
Account:<br>
<input type="text" name="acc">
<br>
Card:<br>
<input type="text" name="card">
</form>
<button type="submit" form="form1" value="Submit">Bind</button>

我已经尝试循环但我只能循环一个 txt 文件。我不能同时循环 2 个 txt 文件来输入文本框。 谁能给我任何建议?

【问题讨论】:

  • 您可以将值存储在两个列表中,然后使用它们。
  • 是的,我已经创建了 2 个列表。
  • 如果您将第一个 txt 中的值存储在第一个列表中,并将第二个 txt 中的值存储在第二个列表中,您可以只循环一次并在第一个文本框中输入 account[i] 并card[i] 在第二个文本框中
  • 谢谢老哥让我试试index

标签: robotframework


【解决方案1】:

您可以使用For-in-zip loop

例如,假设您读取两个文件并拆分数据,以便拥有两个数组 @{account} 和 `@{card},您可以像这样同时遍历两个列表:

:FOR  ${account}  ${card}  IN ZIP  ${account}  ${card}
\    log  account: ${account} card: ${card}

这是一个完整的例子:

*** Test Cases ***
Example
    @{account}=    Create List    12345    12346    12347
    @{card}=       Create List    1111     2222      3333

    :FOR  ${account}  ${card}  IN ZIP  ${account}  ${card}
    \    log  account: ${account} card: ${card}

【讨论】:

  • 你能告诉我如何通过单独的行将文件附加到列表吗?信息 [u'23023314\n', u'23026093\n23026094\n'] .
  • @SidaraKEO 这听起来像是一个单独的问题,届时我们将很乐意回答。
  • 我现在正面临这个问题。
【解决方案2】:

只需运行一个独立的 FOR 循环并使用变量作为数组的索引:

@{account}    Create List    12345    12346    12347
@{card}       Create List    1111     2222      3333
:FOR         ${iter}         IN RANGE     3 
    Log     Account: @{account}[${iter}]        
    Log     Card: @{card}[${iter}]

输出:

INFO : @{account} = [ 12345 | 12346 | 12347 ]
INFO : @{card} = [ 1111 | 2222 | 3333 ]
INFO : Account: 12345
INFO : Card: 1111
INFO : Account: 12346
INFO : Card: 2222
INFO : Account: 12347
INFO : Card: 3333

【讨论】:

  • 虽然这在技术上是可行的,但您必须自己在循环之前获取列表项的计数,而标准功能 :FOR ... IN ZIP ... 会处理这个问题。
猜你喜欢
  • 2020-12-29
  • 2015-12-08
  • 2017-04-20
  • 2020-07-10
  • 2016-11-18
  • 2016-03-15
  • 2017-07-02
  • 2020-02-19
  • 2021-07-17
相关资源
最近更新 更多