Java+Selenium3方法篇22-利用Javascript处理竖向滚动条【转载】

本篇介绍如何使用javascript脚本去处理竖向滚动条,例如有这样一个场景,你访问我的csdn主页,想下拉到当前页的地步,这个下拉,你会拖拽竖向滚动条到底部就实现了。这个过程,如果在webdriver的自动化测试,如何做呢。在webdriver中是没有拖动滚动条的方法的,需要借助javascript来根据一个页面元素去实现拖动滚动条的过程。本篇要学习两个知识点,一个是webdriver中如何执行Js脚本,第二个是如何写js滚动到某一个元素附近。

下面用,打开我的csdn主页举例,拖动到底部,参考物是底部的公司介绍这个元素。

[java] view plain copy
  1. package lessons;  
  2.   
  3. import java.util.concurrent.TimeUnit;  
  4.   
  5. import org.openqa.selenium.By;  
  6. import org.openqa.selenium.JavascriptExecutor;  
  7. import org.openqa.selenium.WebDriver;  
  8. import org.openqa.selenium.WebElement;  
  9. import org.openqa.selenium.chrome.ChromeDriver;  
  10.   
  11. public class ElementOpration {  
  12.     public static void main(String[] args) throws Exception {    
  13.           
  14.         System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");    
  15.              
  16.         WebDriver driver = new ChromeDriver();    
  17.        
  18.         driver.manage().window().maximize();    
  19.          
  20.         driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);  
  21.             
  22.         driver.get("http://blog.csdn.net/u011541946");    
  23.          
  24.         Thread.sleep(1000);  
  25.           
  26.         // 定义csdn底部 公司简介 这个元素  
  27.         WebElement element = driver.findElement(By.xpath("//*/dd[@class='foot_sub_menu']/a[1]"));  
  28.         //创建一个javascript 执行实例  
  29.         JavascriptExecutor je = (JavascriptExecutor) driver;  
  30.               
  31.         //执行js语句,拖拽浏览器滚动条,直到该元素到底部,马上就不可以见  
  32.         je.executeScript("arguments[0].scrollIntoView(true);",element);  
  33.           
  34.        
  35.           
  36.     }    
  37. }  

关于scrollIntoView(true),应该这么理解,拖动到可以看到这个元素为止,如果这个地方ture改成false,也是可以,拖动效果有一点差别,你可以观察下。一般情况,ture或者false都可以。

posted on 2018-04-28 13:22  okeymen  阅读(64)  评论(0)    收藏  举报

导航