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 相关文章推荐
LRUCache的实现原理及利用python实现的方法
Nov 21 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
Nov 14 Python
自学python的建议和周期预算
Jan 30 Python
Django 配置多站点多域名的实现步骤
May 17 Python
numpy.linspace函数具体使用详解
May 27 Python
pycharm实现在子类中添加一个父类没有的属性
Mar 12 Python
Python文件时间操作步骤代码详解
Apr 13 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
Python中return函数返回值实例用法
Nov 19 Python
Python提取PDF指定内容并生成新文件
Jun 09 Python
如何利用python实现列表嵌套字典取值
Jun 10 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判断手机是IOS还是Android
2015/12/09 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
jquery 设置元素相对于另一个元素的top值(实例代码)
2013/11/06 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
vue使用openlayers实现移动点动画
2020/09/24 Javascript
Python中给List添加元素的4种方法分享
2014/11/28 Python
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
Python如何绘制日历图和热力图
2020/08/07 Python
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
超市5.1促销活动
2014/01/15 职场文书
自荐信写法介绍
2014/01/25 职场文书
中学生学雷锋活动心得体会
2014/03/10 职场文书
设计专业自荐信
2014/06/19 职场文书
优秀会计求职信
2014/07/04 职场文书
我爱祖国演讲稿
2014/09/02 职场文书
颐和园导游词
2015/01/30 职场文书
毕业生对母校寄语
2015/02/26 职场文书
七年级作文之我的梦想
2019/10/16 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
2021/05/14 Python
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL
mysql序号rownum行号实现方式
2022/12/24 MySQL