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编写一个模仿CPU工作的程序
Apr 16 Python
简单了解什么是神经网络
Dec 23 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
python清除函数占用的内存方法
Jun 25 Python
Python发展简史 Python来历
May 14 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
Jun 12 Python
python tkinter库实现气泡屏保和锁屏
Jul 29 Python
Python使用百度api做人脸对比的方法
Aug 28 Python
python实现的读取网页并分词功能示例
Oct 29 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
May 25 Python
Pycharm Plugins加载失败问题解决方案
Nov 28 Python
Python中的turtle画箭头,矩形,五角星
Mar 16 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
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
php下的权限算法的实现
2007/04/28 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
利用python爬取软考试题之ip自动代理
2017/03/28 Python
python多线程分块读取文件
2019/08/29 Python
Django配置MySQL数据库的完整步骤
2019/09/07 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
HTML5注册页面示例代码
2014/03/27 HTML / CSS
美国宠物商店:Wag.com
2016/10/25 全球购物
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
自学考试自我鉴定范文
2013/09/26 职场文书
建筑工程专业毕业生自荐信
2013/10/19 职场文书
会计专业毕业生推荐信
2013/11/05 职场文书
管理信息系学生的自我评价
2014/01/11 职场文书
委托书的格式
2014/08/01 职场文书
珠宝的促销活动方案
2014/08/31 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS