Selenium_WebDriver_控制浏览器
版权声明:本文为博主原创文章,转载请注明出处。
浏览器环境:
①GoogleChrome:60
②chromedriver:2.30;
访问
操作 |
方法 |
示例 |
访问页面 |
void get(java.lang.String url) |
driver.get("http://xueshu.baidu.com"); |
void to(java.lang.String url) |
driver.navigate().to("http://news.baidu.com"); |
控制浏览器窗口大小
浏览器窗口大小 |
方法 |
示例 |
自定义大小 |
void setSize(Dimension targetSize) |
说明:设置窗体大小为480*800 实现:driver.manage().window().setSize(new Dimension(480, 800)); |
全屏 |
void maximize() |
说明:设置窗体为全屏 实现:driver.manage().window().maximize(); |
控制浏览器后退、前进
在使用浏览器浏览网页时,浏览器提供了后退和前进按钮,可以方便地在浏览过的网页之间切换,WebDriver也提供了一些方法用于这些操作;
操作 |
方法 |
示例 |
后退 |
void back() |
driver.navigate().back(); |
前进 |
void forward() |
driver.navigate().forward(); |
driver.getCurrentUrl() //返回driver所停留的当前页的url |
刷新浏览器
有时候我们在执行完某些操作后,需要手动刷新浏览器,以便获取最新的数据。
操作 |
方法 |
示例 |
刷新 |
void refresh() |
driver.navigate().refresh(); |
滚动条滑动
我们需要借助 JavaScript 来控制浏览器的滚动条。WebDriver 提供了 executeScript()方法来执行 JavaScript 代码。
操作 |
方法 |
说明 |
滚动条移动 |
executeScript() |
操作对象类型是 JavascriptExecutor,需要将WebDriver转为JavascriptExecutor |
示例1 |
//移动到指定的坐标 ((JavascriptExecutor)driver).executeScript("window.scrollTo(100,900);"); |
|
示例2 |
//移动到页面最底部 ((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)"); |
附测试代码:package com.SeleniumLib.jase;
package com.SeleniumLib.jase;
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class ControlBrowser {
public static void main(String[]args) throws InterruptedException{
System.out.println("start selenium");
WebDriver driver;
System.setProperty("webdriver.chrome.driver","D:/selenium-java-3.5.3/chromedriver.exe"); //chromedriver驱动的本地存放路径
driver = new ChromeDriver();
//访问页面
/*driver.navigate().to("http://news.baidu.com");
driver.get("http://xueshu.baidu.com");*/
//控制浏览器窗口大小
/*driver.manage().window().setSize(new Dimension(480, 800));//设置浏览器大小为480*800
driver.manage().window().maximize();//浏览器全屏显示
driver.get("http://www.baidu.com/"); */
//控制浏览器后退、前进
/*driver.get("http://news.baidu.com");
System.out.println("CurrentUrl"+driver.getCurrentUrl());
driver.get("http://xueshu.baidu.com");
System.out.println("CurrentUrl"+driver.getCurrentUrl());
driver.navigate().back();
System.out.println("CurrentUrl"+driver.getCurrentUrl());
driver.navigate().forward();
System.out.println("CurrentUrl"+driver.getCurrentUrl()); */
//刷新浏览器
/*driver.get("http://news.baidu.com");
driver.navigate().refresh();*/
//滚动条下拉操作
driver.get("http://www.baidu.com");
driver.findElement(By.id("kw")).sendKeys("Selenium");
driver.findElement(By.id("su")).click();
Thread.sleep(2000);
((JavascriptExecutor)driver).executeScript("window.scrollTo(100,900);"); //移动到指定的坐标(X,Y),X表示水平的左间距,Y表示垂直的上边距
Thread.sleep(2000);
((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)"); //移动到页面最底部
System.out.println("end selenium");
///////driver.close(); //测试时为了更直观直接注释掉了,也可使用延时
}
}
参考:
Selenium Java API:https://seleniumhq.github.io/selenium/docs/api/java/index.html
http://blog.csdn.net/jlminghui/article/details/50477283