2016-08-17 54 views
0

我想向下滚动页面并获取该部分/ div的最后一个元素。 我已经执行的代码:如何向下滚动使用硒webdriver分页的特定div


Coordinates coordinate = ((Locatable)element).getCoordinates(); 
    coordinate.inViewPort(); 

,并与

JavascriptExecutor jse = (JavascriptExecutor)driver; 
jse.executeScript("scroll(0, 250)"); 

尝试,但它是滚动整个页面,而不是滚动的特定部分 enter image description here

而且还页面有分页

+0

你可以启动seleniumIDE,看看会产生什么actiosn?这将节省时间 - 然后您可以导出您所需的格式 – farrellmr

+0

在IDE中,如果执行向下滚动操作,则没有任何操作被记录,因为我认为如果任何元素都是可点击的,则只会记录该操作,但这里没有任何可点击的操作,只有我有向下滚动 – liki

+0

您必须为此使用javascript。使用document.getel获取元素...并使用scrollTop并将像素传递给它。 var elmnt = document.getElementById(“myDIV”); elmnt.scrollTop = 100; – Grasshopper

回答

0

你已经尝试将滚动窗口滚动条,你可以试试下面

JavascriptExecutor je = (JavascriptExecutor) dr; 
je.executeScript("arguments[0].scrollIntoView(true);",dr.findElement(By...)); 

指定其试图通过向下滚动找到该元素的定位是什么。

参数[0]

编辑:

JavascriptExecutor je = (JavascriptExecutor) dr; 
je.executeScript("arguments[0].scrollTop(arguments[0].scrollHeight);",dr.findElement(By...)); 
+0

我只是想向下滚动页面直到最后一个元素出现,因为最后一个元素不是一个常量,每次都会改变,数字也会增加,如果我正在尝试这样做,那么它不会获得元素作为分页也在该部分。 – liki

+0

试试这个http://stackoverflow.com/questions/270612/scroll-to-bottom-of-div – Siva

+0

var objDiv = document.getElementById(“your_div”); objDiv.scrollTop = objDiv.scrollHeight;这里我不得不提到div的id我怎样才能得到它 – liki

2

首先,你需要找到你试图滚动到元素:

WebElement element = driver.findElement(By.xpath("xpath_here")); //or anything else used to identify the element 

之后,您使用JS可以执行JavascriptExecutor使用scrollIntoView()将元素放入视图中:

((JavaScriptExecutor)driver).executeScript("arguments[0].scrollIntoView();", element);