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连接mssql数据库编码问题解决方法
Jan 01 Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 Python
python matplotlib画图实例代码分享
Dec 27 Python
python在非root权限下的安装方法
Jan 23 Python
python实现将读入的多维list转为一维list的方法
Jun 28 Python
python中aioysql(异步操作MySQL)的方法
Apr 11 Python
django框架F&Q 聚合与分组操作示例
Dec 12 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
Apr 15 Python
什么是python的列表推导式
May 26 Python
python中有帮助函数吗
Jun 19 Python
浅析Python 字符编码与文件处理
Sep 24 Python
python requests模块的使用示例
Apr 07 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/05/26 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
PHP自定session保存路径及删除、注销与写入的方法
2014/11/18 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
js函数般调用正则
2008/04/08 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
2016/11/17 Javascript
详解JS中的attribute属性
2017/04/25 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
Python 通过pip安装Django详细介绍
2017/04/28 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
python 实现多维数组转向量
2019/11/30 Python
python3的pip路径在哪
2020/06/23 Python
python 中的9个实用技巧,助你提高开发效率
2020/08/30 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
销售人员自我评价怎么写
2013/09/19 职场文书
行政助理岗位职责范文
2013/12/03 职场文书
高二化学教学反思
2014/01/30 职场文书
挂牌仪式主持词
2014/03/20 职场文书
骨干教师申报材料
2014/12/17 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
详解JS ES6编码规范
2021/05/07 Javascript