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备份文件的脚本
Aug 11 Python
Python中http请求方法库汇总
Jan 06 Python
理解Python垃圾回收机制
Feb 12 Python
python中的set实现不重复的排序原理
Jan 24 Python
对numpy中向量式三目运算符详解
Oct 31 Python
Django 路由控制的实现
Jul 17 Python
用Python徒手撸一个股票回测框架搭建【推荐】
Aug 05 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
Aug 13 Python
pytorch中图像的数据格式实例
Feb 11 Python
Python环境配置实现pip加速过程解析
Nov 27 Python
如何用python 操作zookeeper
Dec 28 Python
利用Python批量识别电子账单数据的方法
Feb 08 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代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
php mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
js获取form的方法
2015/05/06 Javascript
javascript常用的方法分享
2015/07/01 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
2016/12/21 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
2017/07/24 Javascript
webpack 2.x配置reactjs基本开发环境详解
2017/08/08 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
python高并发异步服务器核心库forkcore使用方法
2013/11/26 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
keras的ImageDataGenerator和flow()的用法说明
2020/07/03 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
详解Python yaml模块
2020/09/23 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
美国女孩服装购物网站:Justice
2017/03/04 全球购物
技校教师求职简历的自我评价
2013/10/20 职场文书
职业规划书如何设计?
2014/01/09 职场文书
迎新晚会主持词
2014/03/24 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
Python WSGI 规范简介
2021/04/11 Python
Golang bufio详细讲解
2022/04/21 Golang