(六)控制浏览器操作

1.控制浏览器窗口大小

有时候我们希望能以某种浏览器尺寸找开,访问的页面在这种尺寸下运行。例如可以将浏览器设置成移动端大小(480* 800),然后访问移动站点,对其样式进行评估;WebDriver 提供了 manage().window().setSize()方法来设置浏览器的大小。

  • maximize() 设置浏览器最大化
  • setSize() 设置浏览器宽高
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; public class Browser {
public static void main(String[] args) throws InterruptedException { WebDriver driver= new ChromeDriver();
driver.get("https://www.baidu.cn"); driver.manage().window().maximize();
Thread.sleep(2000); driver.get("https://m.baidu.cn");
driver.manage().window().setSize(new Dimension(480, 800));
Thread.sleep(2000); driver.quit();
}
}

在 PC 端执行自动化测试脚本大多的情况下是希望浏览器在全屏幕模式下执行, 那么可以使用 maximize()方法使打开的浏览器全屏显示, 其用法与 setSize()相同, 但它不需要任何参数。

2.控制浏览器后退、前进

在使用浏览器浏览网页时,浏览器提供了后退和前进按钮,可以方便地在浏览过的网页之间切换,WebDriver也提供了对应的back()和forward()方法来模拟后退和前进按钮。下面通过例子来演示这两个方法的使用。

  • back() 模拟浏览器后退按钮
  • forward() 模拟浏览器前进按钮
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.By; public class BrowserGo { public static void main(String[] args) throws InterruptedException { WebDriver driver = new ChromeDriver(); //get 到百度首页
driver.get("https://www.baidu.com/");
System.out.printf("now accesss %s \n", driver.getCurrentUrl());
Thread.sleep(2000); //点击“新闻” 链接
driver.findElement(By.linkText("新闻")).click();
System.out.printf("now accesss %s \n", driver.getCurrentUrl());
Thread.sleep(2000); //执行浏览器后退
driver.navigate().back();
System.out.printf("back to %s \n", driver.getCurrentUrl());
Thread.sleep(2000); //执行浏览器前面
driver.navigate().forward();
System.out.printf("forward to %s \n", driver.getCurrentUrl());
Thread.sleep(2000); driver.quit();
}
}

为了看清脚本的执行过程,下面每操作一步都通过printf()方法来打印当前的URL地址。

3.刷新页面

有时候需要手动刷新(F5) 页面。

  • refresh() 刷新页面(F5)
……
//刷新页面
driver.navigate().refresh();
……

最新文章

  1. 【小月博客】 Html5 上传图片 移动端、PC端通用
  2. Senparc.Weixin.MP SDK 微信公众平台开发教程(十五):消息加密
  3. 【视频处理】YV12ToARGB
  4. popwindow设置背景半透明
  5. 黑马程序员——JAVA基础之装饰设计模式
  6. VS2010在运行状态下编辑代码
  7. Thrift搭建分布式微服务(二)
  8. REST_FRAMEWORK加深记忆-加了API_ROOT及超链接的CASE
  9. 软件测试 -- 软件缺陷记录的5C原则
  10. 虚反矩阵指令pinv之应用
  11. [python]随机数
  12. 转载:JSONObject简介
  13. JavaScript面向对象之类的创建
  14. DirectX 开发环境配置
  15. Redis hash 类型及操作
  16. Xapian使用入门
  17. Java的对象传参问题
  18. kubernetes 基本命令
  19. ES 安装 head安装
  20. Linux环境下查看线程数的几种方法

热门文章

  1. Java中的IO流之输入流|乐字节
  2. 036 Android Xutils3网络请求框架使用
  3. 全能中间件 REST API 使用手册
  4. Sping Aop日志实现(五)--使用Mybatis注解保存日志
  5. 题解-CSA Round#18 Randomly Permuted Costs
  6. Java UpperBound
  7. 一、hystrix如何集成在openfeign中使用
  8. glance
  9. 【转载】Sqlserver中使用Round函数对计算结果四舍五入
  10. 2019.9.27,SAP成都研究院数字创新空间团队建设,射箭和游泳