私はセレンを使ってC#で書いています。ただし、ページをスクロールするために私が見つけた最善の方法は、次を使用することでした。
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
js.ExecuteScript("window.scrollBy(0,900);");
ただし、現在の場合、スクロールする必要のあるウィンドウはページ全体ではなく、その一部です。そして、このコマンドは何もしません。最初に要素を選択する必要があると想像したので、次のようなことを試しました。
js.ExecuteScript("document.getElementsByClassName('scroller')[0].scrollBy(0,500)")
これも機能しませんでした。JSに特に精通していないために間違っているのか、間違った要素を選択してスクロールするなど、他の何か間違っているのかはわかりません。
私の質問を要約すると、c#セレンでウィンドウをスクロールするより良い方法はありますか?要素をスクロールしようとする私のjsコードは間違っていますか?そして、私がスクロールしようとするべき正しい要素がどれであるかを理解する方法はありますか?
これscrollIntoView(true);
を行うには、を使用して、渡された要素ビューを表示します。
以下の要素までスクロールするとします。
WebElement element = driver.getElementByClassName('scroller');
その後、あなたはこのようにすることができます:
js.ExecuteScript("arguments[0].scrollIntoView(true);", element);
複数の要素の場合、一致するインデックス番号を渡すことで、以下を試すことができます。
js.ExecuteScript("arguments[0].scrollIntoView(true);", driver.getElementsByClassName('scroller')[pass the index number here]);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加