【问题标题】:How to scroll using jscroll pane in webdriver java如何在 webdriver java 中使用 jscroll 窗格滚动
【发布时间】:2013-12-11 16:55:31
【问题描述】:
当窗格保持不变时,一个元素不会出现在视图中。我相信如果我向下滚动窗格可能会解决这个问题?
所以基本上我想将一个 div 向下滚动到一个元素以便进入可见性。
我需要将哪段代码添加到我的 webdriver java 中?
我尝试了以下但没有成功:
WebDriver driver = null;
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("$('#fed-panel').data('jsp').scrollToBottom()");
【问题讨论】:
标签:
java
javascript
selenium-webdriver
【解决方案1】:
我在我的代码中使用以下内容来处理一些仅在向下滚动时出现的 Ajax 对象。您可以用 ObjectVisible 替换下面的“this.objectExists”函数(这是我实现的)。
public void scrollDown(String identifier, String m){
Boolean readyStateComplete = false;
int i=0;
while (!readyStateComplete) {
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("window.scrollTo(0,Math.max(document.documentElement.scrollHeight," +
"document.body.scrollHeight,document.documentElement.clientHeight));");
covlog.logIssue(CovLogger.DEBUG, "scrollDown","Scrolling for the " + ++i + " times");
String tmp = js.executeScript("return document.readyState").toString();
readyStateComplete = tmp.contentEquals("complete");
//In case the object doesn't exists, break out of the loop
//the object might represent a spinner that shows that more
// records are downloaded.
if ((i%24)==0){ //24 is page size
if (!this.objectExists(identifier, m)){
readyStateComplete = true;
}
}
}
}