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
Selenium_WebDriver_控制浏览器的更多相关文章
- 通过HTTP头控制浏览器的缓存
通过HTTP头控制浏览器的缓存 浏览器缓存是提高用户体验和提升程序性能的一个很重要的途径,通过浏览器的缓存控制,可以对实时性要求不高的数据进行缓存,可以减少甚至不需要再次对服务器的请求就可以显示数据. ...
- Egret--设置全屏,控制浏览器全屏
1, 手机浏览器打开的项目的时候,浏览器的虚拟按键/标题栏, 使得即便设置全屏也没有变成全屏(好像JS 中有方法向浏览器请求全屏) 2, 加载资源, 关闭后卸载, 再次进入游戏依然很快.不过登陆游戏的 ...
- Nginx实践篇(2)- Nginx作为静态资源web服务 - 控制浏览器缓存、防盗链
一.控制浏览器缓存 1. 浏览器缓存简介 浏览器缓存遵循HTTP协议定义的缓存机制(如:Expires;Cache-control等). 当浏览器无缓存时,请求响应流程 当浏览器有缓存时,请求响应流程 ...
- HttpServletResponse常见应用——设置响应头控制浏览器的行为
1.设置http响应头控制浏览器禁止缓存当前文档内容 1 response.setDateHeader("expries", -1); 2 response.setHeader(& ...
- 通过selenium控制浏览器滚动条
目的:通过selenium控制浏览器滚动条 原理:通过 driver.execute_script()执行js代码,达到目的 driver.execute_script("window.sc ...
- Selenium3 + Python3自动化测试系列三——控制浏览器操作
控制浏览器操作 控制浏览器窗口大小 在测试过程中,我们在打开浏览器后,根据需求可自定义调整浏览器的尺寸大小.WebDriver提供了set_window_size()方法来设置浏览器的大小. 如果页面 ...
- 用JS实现控制浏览器F12与右键功能
本文出至:新太潮流网络博客 用JS实现控制浏览器F12与右键功能,防止恶意窃取代码,或其他直接复制进去就好 //禁用右键 document.oncontextmenu = function () { ...
- 用selenium 模块控制浏览器
11.8 用selenium 模块控制浏览器selenium 模块让Python 直接控制浏览器,实际点击链接,填写登录信息,几乎就像是有一个人类用户在与页面交互.与Requests 和Beautif ...
- selenium - 控制浏览器窗口的大小和浏览器最大化
1.控制浏览器大小 有些前端的页面需要查看在不同像素下的兼容情况,比如把像素设置为 480*800,然后截图看看页面显示有没有问题 WebDriver 提供了 set_windows_size() 方 ...
随机推荐
- 安卓Acitivity的启动模式
活动的四大启动模式 Ps:除了standar模式外,其他启动模式都要在AndroidManifest.xml中设置 android:lauchMode的值 安卓活动的启动模式(LaunchMode)有 ...
- Hive HQL学习
HQL学习 1.hive的数据类型 2.hive_DDL 2.1创建.删除.修改.使用数据库 Default数据库,默认的,优先级相对于其他数据库是最高的 2.2重点:创建表_内部表_ ...
- memcached经典问题和现象
缓存刷新时间集中问题 某个缓存失效了,导致其他节点的缓存命中率下降, 缓存中缺失的数据 去数据库查询.短时间内,会造成数据库服务器崩溃 需要将缓存失效时间离散分布在访问量比较低的时间段 multige ...
- SDP(2):ScalikeJDBC-Connection Pool Configuration
scalikeJDBC可以通过配置文件来设置连接池及全局系统参数.对配置文件的解析是通过TypesafeConfig工具库实现的.默认加载classpath下的application.conf,app ...
- Core Graphics 和Quartz 2D的区别
quartz是一个通用的术语,用于描述在IOS和MAC OS X中整个媒体层用到的多种技术 包括图形.动画.音频.适配. Quart 2D 是一组二位绘图和渲染API,Core Graphic会使用 ...
- php curl实现get和post请求
1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL 的一些高级特性 ...
- Docker部署Elasticsearch集群
http://blog.sina.com.cn/s/blog_8ea8e9d50102wwik.html Docker部署Elasticsearch集群 参考文档: https://hub.docke ...
- Win8无法访问xp共享的解决方法——win8网上邻居访问别的xp电脑要用户名和密码取消方法
新装win8,原来的win7正常连接xp下载机的共享,但在win8下进网上邻居却无法访问xp的共享,显示”用户名或密码不正确”,而密码明明是对的如图所示: 解决方法: 按Win+R启动运行,输secp ...
- CSS深入理解学习笔记之line-height
1.line-height的定义 定义:两行文字基线之间的距离. 注:不同字体之间的基线是不同的. 2.line-height与行内框盒子模型 行内框盒子模型: ①内容区域(content area) ...
- 常用API
1 System类 System类包含一些有用的类和字段.它不能被实例化. 属性和方法都是静态的. 1.1 常见方法 返回以毫秒为单位的当前时间 public static long currentT ...