Seleniumを使ってIE11画面をスクロールさせる
初めてのケースだったので備忘録として。
基本情報
- 執筆:2018/09/12
- OS:Windows10
- ブラウザ:IE11
- Selenium-java:3.13.0
- IEDriverServer:3.14.0
tl;dr
frameではなくdisplay:blockで分割された↓のような画面で上下のスクロールバーをそれぞれ制御したかった。
以下の方法で可能。指定する項目が見えるところまでスクロールするjavascriptの機能を利用。(以下の例は"target"要素が見えるところまでスクロールする。)
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", driver.findElement(By.id("target")));
以下、試行の記録。
#1
javascriptのscrollToを利用するがNG。画面の項目にフォーカスを当てても効かず。
((JavascriptExecutor) driver).executeScript("window.scrollTo(0, 100)", "");
#2
PageDown押下作戦、効かず。これはそもそも制御エリア内にフォーカスを当てられていなかったのが原因かも。入力フィールドにフォーカスを当てると入力フィールド内で入力されている文字列の末尾にジャンプしてしまう。(Endキーの動作と同じ。)
driver.findElement(By.id("target")).sendKeys(Keys.PAGE_DOWN);
#3
解決策と同じ手法のSelenium版。1mmも動かず。
WebElement elem = driver.findElement(By.id("target"));
Actions action = new Actions(driver);
Actions action2 = action.moveToElement(elem);
action2.perform();
※ブラウザ種類により動作が異なることはあると思うので、他ブラウザでは試行錯誤1~3の方法でももしかしたらできるのかもしれません。
弊社ではエンジニアを募集中です。こちらも見て頂けると嬉しいです。
https://www.nittsu-infosys.com/recruit/2019/index.html
Author And Source
この問題について(Seleniumを使ってIE11画面をスクロールさせる), 我々は、より多くの情報をここで見つけました https://qiita.com/taniken5/items/3443cbda2377201388e2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .