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中使用HTMLParser解析html实例
Feb 08 Python
python3设计模式之简单工厂模式
Oct 17 Python
Python socket套接字实现C/S模式远程命令执行功能案例
Jul 06 Python
Django实战之用户认证(初始配置)
Jul 16 Python
使用 Python 实现微信群友统计器的思路详解
Sep 26 Python
python输入多行字符串的方法总结
Jul 02 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
多个python文件调用logging模块报错误
Feb 12 Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 Python
如何利用Python识别图片中的文字
May 31 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 Python
如何用用Python将地址标记在地图上
Feb 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
php你的验证码安全码?
2007/01/02 PHP
php 方便水印和缩略图的图形类
2009/05/21 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
PHP使用redis位图bitMap 实现签到功能
2019/10/08 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
jquery的map与get方法详解
2013/11/04 Javascript
JavaScript获取文本框内选中文本的方法
2015/02/20 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
iphone刘海屏页面适配方法
2019/05/07 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
python支持多继承吗
2020/06/19 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
2020/12/17 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
有关打架的检讨书
2014/01/25 职场文书
高中教师先进事迹材料
2014/08/22 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
2014年客户经理工作总结
2014/11/20 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书