2016-10-06 4 views
1

私はすでにスクロールして表示されていますが、よりスマートにすることを考えていました。特定のパラメータを使用して表示にスクロール

これは、これまでのところ、私のOnClickingイベントリスナーにフックされ

((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);

私のコードである - それは要素をクリックして行く時はいつでもそう、最初にそれが見えて、それをスクロールします。

これは素晴らしいことですが、テストを実行しているときに、要素が画面の中央にあってもページが上下にスクロールしています。

要素が可視スクリーン上の3/4以下であればだから私の質問は、はどのように私はそして、言ってこの上でスクロールをパラメータを設定するのですか?あなたはY座標たいこの場合

var cumulativeOffset = function(element) { 
    var top = 0, left = 0; 
    do { 
     top += element.offsetTop || 0; 
     left += element.offsetLeft || 0; 
     element = element.offsetParent; 
    } while(element); 

    return { 
     top: top, 
     left: left 
    }; 
}; 

+0

要素が画面に表示されていないときにスクロールしたいのですか?右 –

+0

@SaurabhGaur要素が画面の75%未満のときにスクロールしたい。 –

答えて

0

あなたは、X/Yのcordinatesを取得するにはJavaScriptを使用することができます。 そして、これを使用します。http://www.w3schools.com/jsref/met_win_scrollto.asp

それとも...は、このを見てみましょう: Javascript scrollIntoView() middle alignment?

+0

これをセレンでどうやって使うのですか? –

+0

Javaでコーディングしていますか? PHP/Behat? Python?これはjavascriptとして実行できます。 javaの場合:https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/JavascriptExecutor.html – XorX

1

私は思います。あなたはそれを試すことができます。

var element = driver.FindElement(By.Xpath("//*/blabla")); 
var js = driver as IJavaScriptExecutor; 
js.ExecuteScript("window.scrollTo(" + element.Location.X + ","+(element.Location.Y - 100) + ");"); 
関連する問題