如何通过模拟Page Down键使用Selenium向下滚动div容器?

时间:2019-05-15 21:37:15

标签: java selenium scroll

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 :(得分:0)

由于要显示的定位符(即#navigation-collapse > .container:nth-of-type(1))位于顶部,因此您的问题不清楚。那么,您要寻找哪个元素?据我所知,如果您尝试进行交互,它将直接转到该元素,该元素位于页面底部。否则,您必须使用JavaScriptExecutor滚动到该元素。

无论如何,请尝试使用如下所示的页面的 body '标签,然后尝试使用Page down逻辑。

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

请尝试此操作后告知更新。