3

私は今日、小さな問題で私のプロジェクトに行き詰まっています。コントロールキーをしばらく押したままにして、{n} 行を選択する必要があります。

以下は私のコード スニペットです。

!!!...ある行をクリックしたままコントロールキーを押したまま、別の行をクリックして、最後にコントロールキーを放します...!!!

while (enclosure_count_remove > 0)

     $browser.element(:xpath,"//table[@id ='selectConfiguration']/tbody/tr[0]").click(:control);
     $browser.element(:xpath,"//table[@id ='selectConfiguration']/tbody/tr[1]").click(:control);
     enclosure_count_remove -= 1;

終わり

そして、私が試した2番目の方法を以下に示します

while (enclosure_count_remove > 0)

     $browser.send_keys :control
     $browser.element(:xpath,"//table[@id ='selectConfiguration']/tbody/tr[0]").click;
     $browser.element(:xpath,"//table[@id ='selectConfiguration']/tbody/tr[1]").click;
     enclosure_count_remove -= 1;

終わり

クリックすることはできますが、両方のエンティティを保持してクリックすることに失敗するたびに、両方が機能しません。

ありがとう!

アディティア

4

2 に答える 2

0

watir-webdriver Element.click() メソッドを見た後、webdriver アクション ビルダーを直接使用する必要があると思います。これを試して:

action = $browser.driver.action
action.key_down(:control)
action.click $browser.element(:xpath,"//table[@id ='selectConfiguration']/tbody/tr[0]").wd
action.click $browser.element(:xpath,"//table[@id ='selectConfiguration']/tbody/tr[1]").wd
action.key_up(:control)
action.perform

これをテストするための Web ページがないため、純粋にドキュメントに基づいています。

于 2012-05-30T03:31:46.753 に答える
0

click メソッドは修飾子パラメーターを受け取ります。これにより、任意の数のキーを「押したまま」でクリックできるようになります。詳細については、クリック メソッドの rdocs を参照してください。できるはずです。

browser.table(:id => 'selectConfiguration').row[0].click(:control)

もちろん、クリックしたい行が確実にわかっていて、それらが決して変更されないことが前提です。通常、人間が行を選択して選択する方法に似た、一致する一意のテキストまたはその他のコンテンツに基づいて行を選択します。

browser.table(:id => 'selectConfiguration').row(:text => /text_fragment/).click(:control)    
于 2012-05-30T06:15:41.417 に答える