2

watir を使用して Web アプリケーション用の自動スクリプトを作成しようとしています。UI にはスライダーがあり、1 から 11 までの範囲があります。これは水平 div です。したがって、右矢印キーを押すと数値が 1 増加し、左矢印キーを押すと数値が減少します。私の問題は、irb で次のステートメントを個別に実行しようとすると、send_keys関数は正常に動作しますが、Ruby スクリプトに移動するとすぐに send_keys が実行されないことです。

assert($b.div(:class, "position").text == "2")
$b.div(:class, "scroll").wait_until_present
$b.div(:class, "scroll").click
$b.div(:class, "scroll").send_keys(:arrow_right)
assert($b.div(:class, "position").text == "3")

send_keys(:arrow_right)irbで個別に実行すると機能します。スクリプト ファイルを実行しようとしても、エラーは発生せず、同じ番号のままで、「アサーションに失敗しました。メッセージはありません」とだけ表示されます。

これb.div(:class, "scroll").clickは、右矢印キーが押される div をアクティブにすることです。

私はwatir-webdriver 0.6.2、Firefox 18.0.2、Windows 7 64ビットを使用しています

4

1 に答える 1

2

あなたが言ったようb.div(:class, "scroll").clickに、キーが押されるdivをアクティブにすることです.divをアクティブにするのに時間がかかる可能性があります.IRBでそれを行っているときは、ロードに時間がかかります.別の行を実行する時間ですが、スクリプトでそれを実行して実行するとsend_keys、divをクリックした直後にアクションが実行され、実行がそのDivをアクティブにする適切な時間が得られません。

スクリプトをしばらく一時停止/遅延させてから、実行してみてくださいsend_keys

使用できる一時停止/遅延を与えるにはsleep(time_period)

于 2013-05-21T06:53:45.483 に答える