如何在网页中的特定div中垂直向下滚动

我搜索了所有的论坛,但我没有得到正确的答案。 我要测试的网页下面隐藏了一个链接,我试图通过使用xpath或元素的ID属性搜索它来手动找到它,但是当我运行Web驱动程序脚本时,我无法找到它。 即使它没有在该元素上给出任何错误,我在下一个命令/行上收到错误。

我从论坛中找到了以下代码,这是滚动整个页面。 我不想这样,我想在屏幕截图中垂直向下滚动特定div区域。

JavascriptExecutor jsx = (JavascriptExecutor)driver; jsx.executeScript("ctl00_Menu1_scrollDiv.scrollBy(0,250)", ""); 

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

 div id for this is "ctl00_Menu1_scrollDiv" Element id: ctl00_Menu1_DlMenu_ctl09_LnkMenuname 

请帮我解决这个问题。 提前致谢。

帮助将不胜感激。

检查这是否适合您。

 var s = $('#ctl00_Menu1_scrollDiv').scrollTop(); 

这将给出div中滚动的当前值。仅当您想要动态地在div内滚动到某个点时才使用此值。 否则你可以在animate()里面对scrollTop值进行硬编码

使用滚动的当前值,您可以参数化下面给出的scrollTop参数

 $("#ctl00_Menu1_scrollDiv").animate({ scrollTop: "100px" }); // Here 100 px is just an example 

我用它在我的webdriver框架中以编程方式滚动一个大的div。 此外,如果您的AUT在浏览器中加载了jQuery,这将有效。

在Java中:

 JavascriptExecutor js; js = (JavascriptExecutor) driver; js.executeScript("$(\"#ctl00_Menu1_scrollDiv\").animate({ scrollTop: \"100px\" })"); 

这是umendra tomar,我已经找到了非常简单的解决方案,请使用下面的代码使用selenium滚动html中的特定div。

 JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript("document.getElementById('scrollCustom').scrollTop= 450"); scrollCustom = this is the ID of your div which you want to scroll. document.getElementById = this is use in javascript to locate a webelement. 

不要担心我们可以使用javascriptExecutor在java中使用它

首先,您不应该只通过id引用元素。 您应该设置scrollTop将其滚动到某个位置。

 document.getElementById("ctl00_Menu1_scrollDiv").scrollTop(250); 

基于这篇文章的非JQuery解决方案。

 ((JavascriptExecutor) driver).executeScript( "arguments[0].scrollTop=arguments[1].offsetTop", divWithScrollbarElement, elementToScrollTo); 

其中divWithScrollbarElement是您要滚动的div元素, elementToScrollTo是您想要查看的子元素(在我的情况下实际上是我最初尝试查看的元素的父元素)。 如果elementToScrollTo实际上还没有在DOM中,您可能需要使用脚本一次尽可能向下滚动,然后再次加载元素。