如何使用带有Java的Selenium WebDriver滚动特定的DIV?

2022-09-01 03:57:15

WebDriver无法识别某些WebElements,WebDriver无法找到在浏览器的可见区域中不可见的元素。

为了使WebElement可由WebDriver查看,我们需要使该元素在浏览器的视图中可见,以便在特定的div上向下滚动!

如何在网页的特定区域执行操作(向下滚动并单击)。我尝试了很多,没有帮助我。

请帮助我解决我的问题。


答案 1

首先,这里发布的大多数答案都偏离了主题。我现在一直在使用硒2和硒3,网络驱动程序可以处理窗口滚动以使元素可见。

对于每个发布摘要的人,例如:

driver.execute_script('scrollBy(0, 250)')

你根本没有得到这个问题!

实际上,我仍然没有找到正确模拟滚动手柄拖动动作的方法,但这个答案似乎很有希望 - 但我没有尝试。

因此,到目前为止,我个人有两种方法可以做到这一点:

  1. Keys.ARROW_DOWN
  2. Keys.PAGE_DOWN

实际上还有第三种方法,只要放弃硒,如果他们提供任何API,请与网站联系。


答案 2

最简单的方法是执行Javascript来向上/向下滚动元素。

JavascriptExecutor jsExec = (JavascriptExecutor) driver;
jsExec.executeScript("document.getElementById('id').scrollDown += 100");

推荐