2016-09-06 15 views
-1

メインウィンドウの上に用語が表示されたオーバーレイがあります。 )新しいウィンドウが新しい「ウィンドウ」またはタブとして認識されていませんセレニウム - フォーカスをオーバーレイに切り替える方法

Scrollbar

ので、私は通常、それに切り替えるカント、どちらもそれはIFRAMEそうdriver.switchTo(ある:これは、スクロールバーがどのように見えるかではありません.frame(iframe);いずれも動作しません。これは私がこれまで試したものです:。。

1)(要素によって私はコンテンツを含むオーバーレイフラグメントを意味しているのは何も

2)の要素をクリックすると使用してフォーカスを切り替え、次

jse.executeScript("var ov = document.getElementsByClassName('overlay__content'); window.setTimeout(function() { ov[0].focus(); }, 0); "); 
能動素子にスイッチをクリックし使用しようと

3):これらの結果の作業の

_driver.getWebDriver().switchTo().activeElement(); 

なし。私は、ウィンドウに切り替えるしようとしているそれをフルスクリーンのショットを取得するには、ashotを使用しています。これはiframeでうまく動作しますが、ここでどのように進めるのか混乱しています。任意のscrollBy(0,10)などは、メインウィンドウをスクロールさせます。

+0

と内側のdivでなければなりません。..もっと手の込んだでしょう? –

+0

どういう意味ですか?オーバーレイは、フォーカスを設定してスクロールするメインウィンドウを開きますが、できません。 –

+0

サイドビューの代わりにスクリーンショットを完全に共有できますか? –

答えて

0

オーバーレイdivの内部をスクロールするには、JavaScriptExecuterで次のようにメソッドを作成できます。

public void scrollDownInsideOf(WebElement element, int pxForScrollDown) { 
    JavascriptExecutor js = (JavascriptExecutor) webDriver; 
    js.executeScript("arguments[0].scrollTop = arguments[1];", element, pxForScrollDown); 
} 

要素は、それはあなたの質問を理解するのは難しいオーバーレイ

+0

この問題は、要素内でのスクロールがそれほど多くなく、ashot(https://github.com/yandex-qatools/ashot)で、iframeの場合と同様に 'focus'を設定することで可能になります。しかし、私はこれを行って、それがどのようにパン、アウト感謝を参照してください。 –

+0

あなたが言ったように単なるdivであれば、iframeへのウィンドウのようにswitchTo()を使うことはできません。切り替える必要がないため、ページソースのコンテンツです。 –

関連する問題