2017-02-20 15 views
0

これについて前回の記事を読み進めましたが、問題がまだ残っています。Java/Seleniumで横方向にスクロールする問題

私はテストする必要がある項目にアクセスできるように、右に移動する必要がある小さなスクロールバーがあります。次のようにスクロールバーのコードは次のとおりです。

<div class="ngscroll-scrollbar" ng-style="styles.scrollbar" style="height: 
6px; bottom: 3px; left: 3px; opacity: 0; width: 126.05px; transition: 
opacity 0.3s ease-in-out 0s, border-radius 0.1s linear 0s, height 0.1s 
linear 0s, bottom 0.1s linear 0s; position: absolute; cursor: default; 
background: rgba(0, 0, 0, 0.6) none repeat scroll 0% 0%; border-radius: 3px;"></div> 

スクロールバーは、それが問題だ場合、私は知らない、容器の内側にあります。

WebElement scroll = driver.findElement(By.xpath("//html/body/div[2]/main/div/ui-view/ui-view/div[2]/div/div[1]/su-flight-filters/div/aside/div/section/div/div/div[2]/div/div[2]/div")); 
JavascriptExecutor js = (JavascriptExecutor)driver; 
js.executeScript("document.getElementsByClassName('ngscroll-scrollbar').scrollRight += 50", ""); 

私はすべてのエラーを得ることはありませんが、スクロールバーはどちらか動かない:

<div class="ngscroll-scrollbar-container" ng-show="!isTouch" ng- 
style="styles.scrollbarContainer" style="bottom: 0px; left: 0px; width: 
100%; height: 12px; margin-left: 0px; position: absolute; transition: 
background 0.3s ease-in-out 0s; border-radius: 6px; background: transparent 
none repeat scroll 0% 0%;"> 

は、ここに私のコードです。私は50,250、および400の値を試しました。

誰でもアイデアはありますか?

答えて

0

.getElementsByClassName()コレクションを返します。最初に一致する要素をスクロールするには、

js.executeScript("document.getElementsByClassName('ngscroll-scrollbar')[0].scrollRight += 50", ""); 

を試してください。確認し、最初の試合があなたが望むものであることを確認する必要があります。スライダーを移動する

+0

それはどちらもうまくいかないようです。私はそのコレクションをどのように処理するのか分からない、それが何が含まれているかを確認するためにコンソールに内容を印刷することができる方法はありますか? – Sulteric

+0

'document.getElementsByClassName( 'ngscroll-scrollbar')。length'をコンソールで実行して、そのロケータと一致する数を確認できます。このJSのいずれかをコンソールで実行し、動作することを確認する必要があります。 – JeffC

0

使用Actionクラスconvnent道 Xの値を選択し、任意のは、あなたのスライダーの幅に依存して、forループを使用する場合、複数の位置に

WebElement slider = driver.findElement(By.id("slider")); 
    int width=slider.getSize().getWidth(); 
    Actions move = new Actions(driver); 
    Action action = (Action) move.dragAndDropBy(slider, 30, 0).build(); 
    action.perform(); 
をポインタをドラッグすることであると、私はこれを見つけます
+0

私はこの特定のスクロールバーがクリックされてからドラッグされなければならないと思います。上記はそうするのだろうか?私はそれを試したと私はそれがアクティブになるように見えるが、スライドしません。バーの幅は205、高さは6です。 – Sulteric

+0

を使用するか、forループの範囲を指定してこのコードを使用してください。 move.moveToElement(スライダ).click(スライダ).sendKeys(Keys.ARROW_RIGHT).perform(); – Dharam

+0

またはアクションオブジェクト内で以下のものを使用し、ドラッグするピクセル数を指定してください。 move.moveToElement(draggablePartOfScrollbar).clickAndHold()。moveByOffset(0、numberOfPixelsToDragTheScrollbarDown).release()。perform(); – Dharam

関連する問題