2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Seleniumを使ってIE11画面をスクロールさせる

Posted at

初めてのケースだったので備忘録として。

基本情報

  • 執筆: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

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?