2

自動化を実行しようとしているJSPのコーディングが非常に不十分です。「delete[x]」という名前(IDなし)の一連のチェックボックスがあります。ここで、Xは入力されたアイテムのアイテム番号です。すべてのエントリを削除できるように、すべてのチェックボックスを選択しようとしています。これが私が持っているものです

check_boxes = []
check_boxes.push(@browser.checkbox(:xpath, "//input[contains(@name,'delete')]"))
puts check_boxes.size

check_boxes.each do |check_box|
check_box.set

これに伴う問題は、xpathに一致する最初のインスタンス(ノード)のみを選択して配列にダンプすることです。xpathを反復処理してノードにインデックスを追加し、インデックスが範囲外になったときにそれを削除するレスキューを入れることができることはわかっていますが、それは汚い方法のようです。

アンカーのセットを取得する「as」タグがあることを知っています。チェックボックスの選択全体を取得するためのそのような方法があるかどうか疑問に思いました。

4

1 に答える 1

3

問題はxpath自体ではないと思います。これが@browser.checkbox、最初のチェックボックスのみが返される原因になっています。

一致するすべてのチェックボックスが必要な場合は、次を使用する必要があります(複数形に注意してください)。

@browser.checkboxes

checkboxesチェックボックスのコレクションを返すことに注意してください。本当に凝ったことをしているのでない限り、通常はそれを配列に変換する必要はありません。

あなたは簡単に行うことができます:

@browser.checkboxes(:name => /delete/).each do |checkbox|
  checkbox.set
end
于 2013-02-12T14:08:34.147 に答える