Как прокрутить контейнер Div с помощью Selenium, имитируя клавишу Page Down? - PullRequest
0 голосов
/ 16 мая 2019

Контейнер div ссылается на контейнер пунктов меню «гамбургерного» меню этой веб-страницы: http://www.xm.com (обратите внимание, что из-за отзывчивой страницы размер окна составляет 600 пикселей в ширину)

Селектор CSS так прост: #navigation-collapse > .container:nth-of-type(1)

Элемент найден нормально:

WebElement container = driver.findElement(By.cssSelector(mycss));

Однако проблема возникает при вызове этого:

container.sendKeys(Keys.PAGE_DOWN);

Там, где есть жалоба на то, что элемент не взаимодействует: Exception in thread "main" org.openqa.selenium.ElementNotInteractableException: element not interactable

Почему это происходит? Как можно смоделировать клавишу PAGE DOWN на этом контейнере?

Обратите внимание, что способ прокрутки в javascript работает нормально, но в идеале хотелось бы избежать

1 Ответ

0 голосов
/ 22 мая 2019

Непонятно по вашему вопросу, так как локатор, который вы показываете (т.е. #navigation-collapse > .container:nth-of-type(1)), находится сверху.Итак, какой элемент вы собираетесь найти?Насколько мне известно, он напрямую перейдет к элементу, если вы попытаетесь взаимодействовать, и который находится внизу страницы.В противном случае вы должны использовать JavaScriptExecutor для прокрутки к этому элементу.

В любом случае, попробуйте использовать тег ' body ' на странице, как показано ниже, а затем попробуйте свою логику Page down.

WebElement container = driver.findElement(By.tagName('body'));
container.sendKeys(Keys.PAGE_DOWN);

Пожалуйста, сообщите обновление после попыткиэто.

...