2

Chrome ブラウザーで watir-webdriver/selenium-webdriver を使用してキュウリ スクリプトで、テーブルとして定義された日付ピッカーで複数の項目を選択しようとしています。

日付ピッカーでは、Ctrl と Shift を修飾子として使用できます。

これはセルのコードです:

<div type="button" class="datepicker_day" onclick="if(!ample.$instance(this).$isAccessible()) return; DatePicker.onSelectDay(ample.$instance(this), '2011/06/03')" onmouseover="if(!ample.$instance(this).$isAccessible()) return;if (!this.className.match(/_day-disabled/)) this.className += 'datepicker_day-hover'" onmouseout="if(!ample.$instance(this).$isAccessible()) return; if (!this.className.match(/_day-disabled/)) this.className = this.className.replace('datepicker_day-hover', '')">3</div>

そして、これは日付ピッカーの動作のサンプルです-

http://demo.essentialobjects.com/Demos/Calendar/Designs/Windows%20(複数月)/Demo.aspx


私は使用しようとしました:

driver.action.key_down(:shift).
click(element).
click(second_element).
perform

しかし、「TypeError: 文字列を整数に変換できません」というメッセージが表示されます。

from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/remote/response.rb:59:in `[]'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/remote/response.rb:59:in `add_backtrace'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/remote/response.rb:23:in `error'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/remote/response.rb:50:in `assert_ok'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/remote/response.rb:15:in `initialize'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/remote/http/common.rb:54:in `new'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/remote/http/common.rb:54:in `create_response'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/remote/http/default.rb:64:in `request'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/remote/http/common.rb:35:in `call'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/remote/bridge.rb:430:in `raw_execute'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/remote/bridge.rb:408:in `execute'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/remote/bridge.rb:274:in `sendModifierKeyToActiveElement'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/common/keyboard.rb:26:in `press'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/common/action_builder.rb:122:in `block in perform'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/common/action_builder.rb:121:in `each'
from C:/Ruby/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.9.1/lib/selenium/webdriver/common/action_builder.rb:121:in `perform'

誰かが彼のコードでこれを使用できましたか? または、修飾子をマウスイベントに送信するための解決策はありますか? 前もって感謝します。

4

3 に答える 3

2

Watir-Webdriver に関して、私は Jari (Watir-webdriver の主な原動力) にこれについて尋ねたところ、次の回答を得ました。

watir-webdriver には (まだ) 何も公開されていませんが、WebDriver のアクション API を使用して実行できるはずです ( http://rubydoc.info/gems/selenium-webdriver/2.10.0/Selenium/WebDriver/ActionBuilderを参照)。 )。これがブラウザー間でどの程度サポートされているかはわかりませんが、Java テスト (最も広範囲) から、現在 Firefox + Linux でのみサポートされているようです:

http://code.google.com/p/selenium/source/browse/trunk/java/client/test/org/openqa/selenium/interactions/CombinedInputActionsTest.java#50

また、Github の Watir-Webdriver プロジェクトで機能要求を作成しました。これが必要な場合は、コメントしてニーズを知らせてください。

于 2011-11-03T19:53:23.247 に答える
1

これにより、ページの 3 番目のカレンダーから 2009 年 12 月 1 日から 6 日が選択されます。

require "watir-webdriver"
browser = Watir::Browser.new
browser.goto "http://www.eyecon.ro/datepicker/"
browser.p(:id => "date3").span(:text => "1").click
browser.p(:id => "date3").span(:text => "6").click

カレンダーが shift または ctrl (手動) に反応することに気づきませんでした。最初のクリックで開始日を選択し、2 回目で終了日を選択します。

于 2011-10-28T10:19:08.723 に答える
0

カレンダーが shift または ctrl (手動) に反応することに気づきませんでした。曜日をクリックして最大5日まで選択できます。6 番目を選択すると、最初に選択したものが自動的に選択解除されます。

これにより、2011 年 11 月 1 日と 3 日が選択されます。

require "watir-webdriver"
browser = Watir::Browser.new
browser.goto "http://nogray.com/calendar.php#tryit"
browser.span(:id => /ng_button_.*_icon/, :index => 1).click # open calendar
browser.td(:id => /11_1_2011/).click
browser.td(:id => /11_3_2011/).click
于 2011-10-31T10:40:40.177 に答える