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() 方 ...
随机推荐
- 学而精计算机公共基础学习之路TEST1
算法 一:算法基本概念 算法是个什么概念学了这么久的程序尽然没有听说过,其实算法就是为了解决问题那么怎么准确完整的解决这个问题就是算法.所以我们所写的程序就可以说为对算法的描述,但是程序编制是不能有于 ...
- 重启nginx后丢失nginx.pid的解决方法
一,nginx的停止操作 停止操作是通过向nginx进程发送信号来实现的. 步骤1:查询nginx主进程号 复制代码 代码如下: ps -ef | grep nginx 在进程列表里 面找master ...
- Node.js进阶:5分钟入门非对称加密方法
前言 刚回答了SegmentFault上一个兄弟提的问题<非对称解密出错>.这个属于Node.js在安全上的应用,遇到同样问题的人应该不少,基于回答的问题,这里简单总结下. 非对称加密的理 ...
- mybatis if条件查询 及<号的问题
摘录自:http://flt95.blog.163.com/blog/static/12736128920136185841551/ <if test="p=='1'"> ...
- Redis进阶实践之七Redis和Lua初步整合使用
一.引言 Redis学了一段时间了,基本的东西都没问题了.从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何平台上,也可以嵌入到大多数语言当 ...
- python_变量
python中一切皆对象 什么是变量.变量名? --变量是存放数据的容器,变量名是区分容器的名字 例如 : a = 7,a就是变量的名字,叫a名字指向那个容器存放了数字 7 变量有什么形式? 变量 ...
- C++ 指针大小
32 位机: 指针大小 sizeof(void*)4字节,32位.例如:0x12345678 64位机: 指针大小: sizeof(void*)8字节,64位.一般只用48位,指针形如:0x12345 ...
- backupMysql.sh
#!/bin/sh #!/bin/bash function backup() { for i in $* do mysqldump -h$hostip -P$port -u$username -p$ ...
- 【转】Matlab作图语句小结
之前用Matlab作图,从网上找了些别人的例子,然后慢慢调参数.其实对很多命令,特别是对句柄不是很了解,今天简单总结了一下.下面用几个例子来说明: ]); 首先,gcf是当前figure对象 ...
- Sql Server的艺术(五) SQL UNION与UNION JOIN运算符
学习本节所用表: CREATE TABLE TEACHER ( ID INT IDENTITY (,) PRIMARY KEY , --主键,自增长 TNO INT NOT NULL, --教工号 T ...