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 相关文章推荐
pygame学习笔记(3):运动速率、时间、事件、文字
Apr 15 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
Apr 17 Python
Python下使用Scrapy爬取网页内容的实例
May 21 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 Python
python读文件的步骤
Oct 08 Python
Python any()函数的使用方法
Oct 28 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
浅谈PyTorch中in-place operation的含义
Jun 27 Python
python3爬虫中异步协程的用法
Jul 10 Python
Python猫眼电影最近上映的电影票房信息
Sep 18 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
PHP 第二节 数据类型之转换
2012/04/28 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
详解nodejs异步I/O和事件循环
2017/06/07 NodeJs
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
python二分法实现实例
2013/11/21 Python
Python中关于使用模块的基础知识
2015/05/24 Python
python线程、进程和协程详解
2016/07/19 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
python版DDOS攻击脚本
2019/06/12 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
python中关于数据类型的学习笔记
2020/07/19 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
JavaScript实现页面动态验证码的实现示例
2021/03/23 Javascript
物流管理应届生求职信
2013/11/07 职场文书
集团公司总经理岗位职责
2013/12/20 职场文书
大一自我鉴定范文
2013/12/27 职场文书
实习生求职自荐信
2014/02/07 职场文书
保健品市场营销方案
2014/03/31 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技