1. 程式人生 > >Java+Selenium3方法篇22-利用Javascript處理豎向滾動條

Java+Selenium3方法篇22-利用Javascript處理豎向滾動條

       本篇介紹如何使用javascript指令碼去處理豎向滾動條,例如有這樣一個場景,你訪問我的csdn主頁,想下拉到當前頁的地步,這個下拉,你會拖拽豎向滾動條到底部就實現了。這個過程,如果在webdriver的自動化測試,如何做呢。在webdriver中是沒有拖動滾動條的方法的,需要藉助javascript來根據一個頁面元素去實現拖動滾動條的過程。本篇要學習兩個知識點,一個是webdriver中如何執行Js指令碼,第二個是如何寫js滾動到某一個元素附近。

下面用,開啟我的csdn主頁舉例,拖動到底部,參考物是底部的公司介紹這個元素。

package lessons;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class ElementOpration {
	public static void main(String[] args) throws Exception {  
        
        System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");  
           
        WebDriver driver = new ChromeDriver();  
     
        driver.manage().window().maximize();  
       
        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
          
        driver.get("http://blog.csdn.net/u011541946");  
       
        Thread.sleep(1000);
        
        // 定義csdn底部 公司簡介 這個元素
        WebElement element = driver.findElement(By.xpath("//*/dd[@class='foot_sub_menu']/a[1]"));
        //建立一個javascript 執行例項
      	JavascriptExecutor je = (JavascriptExecutor) driver;
      		
      	//執行js語句,拖拽瀏覽器滾動條,直到該元素到底部,馬上就不可以見
      	je.executeScript("arguments[0].scrollIntoView(true);",element);
        
     
        
    }  
}
關於scrollIntoView(true),應該這麼理解,拖動到可以看到這個元素為止,如果這個地方ture改成false,也是可以,拖動效果有一點差別,你可以觀察下。一般情況,ture或者false都可以。