6

複数のテキストボックスを持つテストしようとしている Web ページがあります。すべてのテキストボックスのすべての値を取得して配列に格納できるようになりましたが、同じ値をテキストボックスに再度入力する方法に行き詰まっています。

Seleniumでこれまでに持っているものは次のとおりです。

私がこれまでに持っているもの 拡大表示: http://i.stack.imgur.com/rb93k.png

格納された変数 'c​​ount' は単にテーブル内の行数であり、問​​題を引き起こしているわけではありません。赤丸で囲んだ部分が問題です。

このテストを実行すると、そのインデックスで配列に格納されている値を入力する代わりに、次のように入力するだけです。

ここに画像の説明を入力

これが最後までずっと続きます。

変数「i」は適切に挿入されていますが、何らかの理由でその値を取得する代わりに、テキスト ボックスに入力するだけです。

配列で正しい値を取得する方法を知っている人はいますか?

以下は問題のある行です。

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

3 に答える 3

2

Robot Tests Framework を通じて Selenium ライブラリを使用しています。私は IDE を使用しておらず、HTML を使用してテスト ケースを作成し、新しいキーワードを定義しているだけです。

リスト変数項目にアクセスしたいときはいつでも、次の構文を使用するだけです

@{リスト変数名}[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

問題のある行の前にもう 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 に答える
1

${textBoxArray[${i}]丸で囲まれた参照をに置き換える必要があると思います

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

詳細については、このブログ投稿、特に「変数の設定と取得」に関するセクションをお読みください。

記事から引用して、検討してください

store | 10 | x

これは明らかに x=10 を設定します。これを参照するには、${x} または storedVars['x'] の 2 つの方法があります。それらは同じではありません。

特に

${x} には何も代入できません。

于 2012-02-28T15:23:32.990 に答える