如何在网页中的特定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中,您可能需要使用脚本一次尽可能向下滚动,然后再次加载元素。