Java+Selenium3方法篇22-利用Javascript處理豎向滾動條
阿新 • • 發佈:2019-02-17
本篇介紹如何使用javascript指令碼去處理豎向滾動條,例如有這樣一個場景,你訪問我的csdn主頁,想下拉到當前頁的地步,這個下拉,你會拖拽豎向滾動條到底部就實現了。這個過程,如果在webdriver的自動化測試,如何做呢。在webdriver中是沒有拖動滾動條的方法的,需要藉助javascript來根據一個頁面元素去實現拖動滾動條的過程。本篇要學習兩個知識點,一個是webdriver中如何執行Js指令碼,第二個是如何寫js滾動到某一個元素附近。
下面用,開啟我的csdn主頁舉例,拖動到底部,參考物是底部的公司介紹這個元素。
關於scrollIntoView(true),應該這麼理解,拖動到可以看到這個元素為止,如果這個地方ture改成false,也是可以,拖動效果有一點差別,你可以觀察下。一般情況,ture或者false都可以。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); } }