2013-04-30 19 views
5

入力にhtml5を使用するスライダーがあります。 セレンを使用して入力値を変更する方法[type = 'range']

例えば....私はスライダーを変更するには、セレンを使用しようとしているが、伝統的なイメージスライダーのコントロールが私のために働いていない
<input id="sliderWidget" title="Slide me" type="range" min="1" max="1.6" step="0.3" value="1.3"> 

Action dragAndDrop = builder.dragAndDropBy(sliderWidget,0,30).build(); 
dragAndDrop.perform(); 

誰もがあなたがJavaScriptで直接値を設定することができます私はこの増分範囲の変更を行うことができますどのように任意のアイデアを事前

答えて

1

感謝を持っています:

WebElement slider = webDriver.findElement(By.id("sliderWidget")); 
System.out.println(slider.getAttribute("value")); 

JavascriptExecutor js = (JavascriptExecutor) webDriver; 
js.executeScript("javascript:document.getElementById(\"sliderWidget\").value=1.5;"); 

System.out.println(slider.getAttribute("value")); 

お知らせsliderWidgetこと1.5に設定したが、結果は1.6。この方法で、step=0.3がうまく動作していることをテストできます。

+1

これは現実的な試験ではないことにより値をインクリメントする必要があり

from selenium.webdriver.common.keys import Keys ... slider = page.find_element_by_id("sliderWidget") for i in range(10): slider.send_keys(Keys.RIGHT) 

。これは、要素にアクセスできない場合でも機能します。さらに重要なのは、 ''でハンドラを変更しないということです。 –

-1

私は、最も安定したクロスブラウザの方法は、あなたがその場に出るまで、スライダの親指にマウスをドラッグするバイナリ検索を実行することだとわかりました。

私は私のブログには、このためのPython/webdriverをコードを持っている:http://blog.usetrace.com/?p=279

+0

これはおそらくこれを行う最も現実的な方法です。しかし、それはかなりリンクだけの答えです。私は確かに、リンクをたどることなくこれを理解することはできません。 –

6

あなたは要素を選択し、それを(入力/デクリメントインクリメントすべきである)、右/左矢印キーを送信するためにsend_keysメソッドを使用することができます。 Pythonで :10

+0

Javaでは動作しません。 :/ – maxx777

関連する問題