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 调用VC++的动态链接库(DLL)
Sep 06 Python
django模型中的字段和model名显示为中文小技巧分享
Nov 18 Python
Python中__new__与__init__方法的区别详解
May 04 Python
用pandas按列合并两个文件的实例
Apr 12 Python
Python 类的特殊成员解析
Jun 20 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 Python
PyCharm刷新项目(文件)目录的实现
Feb 14 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
Feb 20 Python
计算Python Numpy向量之间的欧氏距离实例
May 22 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
Jul 15 Python
使用jupyter notebook运行python和R的步骤
Aug 13 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函数
2010/02/16 PHP
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
2015/02/12 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
Jquery 扩展方法
2010/05/06 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
2019/09/05 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
python对字典进行排序实例
2014/09/25 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
PHP面试题集
2016/12/18 面试题
材料加工硕士生求职信
2013/10/10 职场文书
入党思想汇报
2014/01/05 职场文书
土木建筑学生自我评价
2014/01/14 职场文书
拆迁委托协议书
2014/09/15 职场文书
财务稽核岗位职责
2015/04/13 职场文书
放飞理想主题班会
2015/08/14 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
Ajax实现局部刷新的方法实例
2021/03/31 Javascript
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android