6

我正在尝试测试一个包含多个文本框的网页。我已经到了可以检索每个文本框中的所有值并将它们存储到一个数组中的地步,但是我一直坚持如何将这些相同的值再次输入到文本框中。

这是我到目前为止在 Selenium 中的内容:

到目前为止我所拥有的 大图:http: //i.stack.imgur.com/rb93k.png

存储的变量“count”只是表中的行数,不会引起问题。我用红色圈出的部分是问题所在。

当我运行这个测试时,它不是在该索引处键入存储在数组中的值,而是简单地键入:

在此处输入图像描述

这种情况一直持续到最后。

变量 'i' 已正确插入,但由于某种原因,它没有获取该值,而是简单地将其键入到文本框中。

有谁知道我怎样才能在数组中获得正确的值?

以下是有问题的行:

type | javascript{this.browserbot.getUserWindow().getTestingHooks('TextBoxValue_' + storedVars['i'])} | ${textBoxArray[${i}]} | 
4

3 回答 3

2

我正在通过机器人测试框架使用 Selenium 库。我没有使用任何 IDE,只是使用 HTML 来制作测试用例并定义新的关键字。

当我想访问列表变量项时,我只使用以下 sintaxe

@{list_variable_name}[0]

注意 ${variable_name} 是访问单值变量或对列表变量的引用。如果我们想访问一个列表项,我们需要使用 @ 而不是 $。

如果我正确理解您的情况,@{textBoxArray}[${i}] 应该适合您。

也可以尝试 ${textBoxArray } [${i}],因为您似乎只是错误地播放了最后一个 }。

更多详细信息,请访问 http://robotframework.googlecode.com/svn/tags/robotframework-2.5.4/doc/userguide/RobotFrameworkUserGuide.html#list-variables

于 2012-04-03T12:43:02.667 回答
1

我认为您需要将圈出的引用替换${textBoxArray[${i}]

javascript{storedVars['textBoxArray['+storedVars['j']+']']}

阅读这篇博文了解更多信息,尤其是关于“设置和获取变量”的部分。

引用文章,考虑

store | 10 | x

这显然设置了 x=10。有几种方法可以引用它:${x} 或 storedVars['x']。他们不一样。

尤其是

您不能将任何内容分配给 ${x}。

于 2012-02-28T15:23:32.990 回答
1

您可以在有问题的行之前再插入一个命令:

getEval | storedVars['text'] = storedVars['textBoxArray'][storedVars['i']];

并将有问题的行更改为:

type | javascript{this.browserbot.getUserWindow().getTestingHooks('TextBoxValue_' + storedVars['i'])} | ${text} 

此外,在测试开始时声明您的数组可能会有所帮助:

storeEval | new Array() | textBoxArray
于 2012-03-29T20:37:10.593 回答