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() 方 ...
随机推荐
- dede被注入后台提示用户名不存在解决方法
如果已经发现/data,有很长一个txt记事本,说明已经被其他人SQL注入了,或是已经有人进行尝试SQL注入了了. 记事儿本如:75252sdaswfdfsfq538ef2ad3556_safe.tx ...
- python通过scapy模块进行arp断网攻击
前言: 想实现像arpsoof一样的工具 arp断网攻击原理: 通过伪造IP地址与MAC地址实现ARP欺骗,在网络发送大量ARP通信量.攻击者 只要持续不断发送arp包就能造成中间人攻击或者断网攻击. ...
- SecurityException
摘录自http://www.cnblogs.com/haorenjie/archive/2012/09/12/2682655.html public boolean checkNetwork() { ...
- myeclipse 10怎么安装与激活
http://jingyan.baidu.com/article/5553fa82eae0ce65a2393406.html
- Select、Poll、Epoll、 异步IO 介绍
一.概念相关介绍 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的net ...
- Linux - ubuntu 16 打开SSH服务
ubuntu 16 打开SSH服务 1.查看是否启动进程 roott@jiqing-virtual-machine:~# ps -ef | grep sshd root 3477 1 0 18:36 ...
- 编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串 'welcome to masm!'
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- enum 操作
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- 微信小程序左右滑动切换图片酷炫效果
开门见山,先上效果吧!感觉可以的用的上的再往下看. 心动吗?那就继续往下看! 先上页面结构吧,也就是wxml文件,其实可以理解成微信自己封装过的html,这个不多说了,不懂也没必要往下看了. < ...
- TypeError: 'encoding' is an invalid keyword argument for this function
python 2.7 问题 data_file = open("F:\\MyPro\\data.yaml", "r", encoding='utf-8') 运行 ...