Firefox - org.openqa.selenium.interactions.MoveTargetOutOfBoundsException - PullRequest
0 голосов
/ 31 августа 2018

Я столкнулся со странной ситуацией, когда на странице в Serenity я должен прокрутить до элемента:

withAction().moveToElement(webElement).perform();

и этот метод для некоторых элементов выдает:

org.openqa.selenium.interactions.MoveTargetOutOfBoundsException: 
(377.375, 958.3999938964844) is out of bounds of viewport width (1268) and height (943)

Это происходит только в Firefox (Chrome работает нормально). Более того, почти все другие места, где я использую тот же метод, работают хорошо. Все элементы являются просто обычными элементами, такими как кнопки, поля ввода и т. Д.

Кто-нибудь знает, как это исправить в Firefox?

У меня есть:

  • Firefox 61.0.2 (64-разрядная версия)
  • Windows 10
  • Безмятежность 1.9.30
  • Geckodriver 0.21.0

1 Ответ

0 голосов
/ 31 августа 2018

Это сообщение об ошибке ...

org.openqa.selenium.interactions.MoveTargetOutOfBoundsException: 
(377.375, 958.3999938964844) is out of bounds of viewport width (1268) and height (943)

... подразумевает, что Selenium не смог сфокусироваться на желаемом элементе, поскольку элемент находился за пределами области просмотра.

Ваша основная проблема - WebElement , идентифицируемый как webElement из Окно просмотра , поэтому Selenium не может переместить фокусировка на желаемом элементе методом moveToElement().

Решение

Простым решением было бы использование метода executeScript(), чтобы поместить нужный элемент в область просмотра , а затем вызвать метод moveToElement() следующим образом:

WebElement myElement = driver.findElement(By.xpath("xpath_of_element"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", myElement);
withAction().moveToElement(webElement).perform();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...