Selenium控制浏览器常见操作示例


Posted in Python onAugust 13, 2018

本文实例讲述了Selenium控制浏览器常见操作。分享给大家供大家参考,具体如下:

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

有时候我们希望能让浏览器以某种尺寸打开,让访问页面在这种尺寸下运行,或者控制浏览器进行后退与前进操作等等

控制浏览器窗口大小

有时我们需要对移动站点的样式进行评估,可是浏览器的正常尺寸很显然是不合适的, 此时我们会想将浏览器设置成移动端大小就可以了。WebDriver提供了set_window_size()方法来设置浏览器大小:

from selenium.webdriver import Chrome
driver = Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
driver.get('https://www.baidu.com/')
driver.set_window_size(480,800)

除了set_window_size方法来设置浏览器的大小,WebDriver还提供了一个设置浏览器全屏显示的方法maximize_window(),其用法与set_window_size()相同,不同的是maximize_window()无需传递参数:

from selenium.webdriver import Chrome
driver = Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
driver.get('https://www.baidu.com/')
driver.maximize_window()

值得注意的是,在定位元素的时候,有些网页如果不是全屏展示时,将由可能定位不准!!!

控制浏览器前进与后退

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

from selenium.webdriver import Chrome
driver = Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
driver.get('https://www.baidu.com')
driver.get('https://blog.csdn.net/y472360651')
# 后退至百度页面
driver.back()
# 前进至博客页面
driver.forward()

刷新页面

有时候需要手动刷新(F5)页面,WebDriver也提供了相应的方法refresh(),使用起来很简单,如下:

driver.refresh()

窗口截屏

自动化用例是由程序去执行的,因此有些时候打印的错误信息并不十分明确。如果在脚本执行出错的时候能够对当前窗口截图保存,那么通过图片就可以非常直观的看出出错的原因。WebDriver提供了截图函数get_screenshot_as_file()来截取当前窗口:

from selenium.webdriver import Chrome
driver = Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
driver.get("https://www.baidu.com/")
driver.get_screenshot_as_file("abc.png")

值得注意的是,当使用窗口截屏功能时,图片的扩展名必须是png!!!

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python+微信接口实现运维报警
Aug 27 Python
Python解惑之True和False详解
Apr 24 Python
python实现requests发送/上传多个文件的示例
Jun 04 Python
Python Dataframe 指定多列去重、求差集的方法
Jul 10 Python
pandas 快速处理 date_time 日期格式方法
Nov 12 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
python中property属性的介绍及其应用详解
Aug 29 Python
Tensorflow实现部分参数梯度更新操作
Jan 23 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
Mar 12 Python
PyQt5事件处理之定时在控件上显示信息的代码
Mar 25 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
Apr 26 Python
mac安装python3后使用pip和pip3的区别说明
Sep 01 Python
详解python3中的真值测试
Aug 13 #Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 #Python
Selenium鼠标与键盘事件常用操作方法示例
Aug 13 #Python
python删除字符串中指定字符的方法
Aug 13 #Python
Django contenttypes 框架详解(小结)
Aug 13 #Python
Python中的Numpy矩阵操作
Aug 12 #Python
浅谈python之新式类
Aug 12 #Python
You might like
php AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
PHP实现根据设备类型自动跳转相应页面的方法
2014/07/24 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
Bootstrap基本样式学习笔记之图片(6)
2016/12/07 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
2017/07/04 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
Python中itertools模块用法详解
2014/09/25 Python
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
详解Python3中yield生成器的用法
2015/08/20 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
鱼油专家:Omegavia
2016/10/10 全球购物
十佳护士获奖感言
2014/02/18 职场文书
安全生产承诺书
2014/03/26 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
校园运动会广播稿
2014/10/06 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
信用卡工作证明范本
2015/06/19 职场文书
2016年第32个教师节红领巾广播稿
2015/12/18 职场文书