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中面向对象编程的相关知识
May 25 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
基于Python的关键字监控及告警
Jul 06 Python
Python中django学习心得
Dec 06 Python
使用Python和xlwt向Excel文件中写入中文的实例
Apr 21 Python
对numpy中的transpose和swapaxes函数详解
Aug 02 Python
python批量修改图片尺寸,并保存指定路径的实现方法
Jul 04 Python
Python使用matplotlib绘制三维参数曲线操作示例
Sep 10 Python
Python使用matplotlib 模块scatter方法画散点图示例
Sep 27 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
详解Python 中的容器 collections
Aug 17 Python
Python中的pprint模块
Nov 27 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
PHP4(windows版本)中的COM函数
2006/10/09 PHP
PHP 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
php生成zip文件类实例
2015/04/07 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
Javascript中对象继承的实现小例
2014/05/12 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
详解vue 组件
2020/06/11 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
[51:28]EG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/16 DOTA
Python操作列表的常用方法分享
2014/02/13 Python
Python数据分析之双色球中蓝红球分析统计示例
2018/02/03 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
检测tensorflow是否使用gpu进行计算的方式
2020/02/03 Python
恶意软件的定义
2014/11/12 面试题
《颐和园》教学反思
2014/02/26 职场文书
捐款活动总结
2014/08/27 职场文书
语文教师个人工作总结
2015/02/06 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
队列队形口号
2015/12/25 职场文书
2019年大学推荐信
2019/06/24 职场文书