2016-08-17 74 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);