我正在尝试测试的网页有多个文本框。我已经到了可以检索每个文本框中的所有值并将它们存储到数组中的点,但我仍然坚持如何再次在文本框中键入相同的值。
这是我到目前为止在Selenium中所拥有的:
更大的观点: http://i.stack.imgur.com/rb93k.png
存储的变量'count'只是表中的行数,并不会导致问题。我用红色圈出的部分就是问题所在。
当我运行此测试时,它不是在该索引处键入存储在数组中的值,而只是键入:
这一直持续到最后。
变量'i'已正确插入,但出于某种原因而不是抓取该值,它只是将其键入文本框。
有谁知道如何在数组中获得正确的值?
以下是有问题的一行:
type | javascript{this.browserbot.getUserWindow().getTestingHooks('TextBoxValue_' + storedVars['i'])} | ${textBoxArray[${i}]} |
答案 0 :(得分:2)
我通过机器人测试框架使用Selenium库。我没有使用任何IDE,只是使用HTML来制作测试用例和定义新关键字。
当我想要访问列表变量项时,我只使用以下sintaxe
@ {list_variable_name} [0]
请注意$ {variable_name}是访问单个值变量或对列表变量的引用。如果我们想要访问列表项,我们需要使用@而不是$。
如果我了解你的情况, @ {textBoxArray} [$ {i}]应该适合你。
也试试 $ {textBoxArray } [$ {i}]因为看起来你只是错误地播放了最后一个}。
答案 1 :(得分:1)
我认为您需要将带圆圈的引用替换为${textBoxArray[${i}]
javascript{storedVars['textBoxArray['+storedVars['j']+']']}
阅读this blog post以获取更多信息,尤其是关于“设置和获取变量”的部分。
引用文章,考虑
store | 10 | x
这显然设定x = 10。有几种方法可以参考它: $ {x}或storedVars ['x']。他们不一样。
特别是
您无法为$ {x}分配任何内容。
答案 2 :(得分:1)
您可以在有问题的行之前再插入一个命令:
getEval | storedVars['text'] = storedVars['textBoxArray'][storedVars['i']];
将有问题的行改为:
type | javascript{this.browserbot.getUserWindow().getTestingHooks('TextBoxValue_' + storedVars['i'])} | ${text}
同样,在测试开始时声明你的数组可能会有所帮助:
storeEval | new Array() | textBoxArray