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 相关文章推荐
wxPython中文教程入门实例
Jun 09 Python
Python多进程通信Queue、Pipe、Value、Array实例
Nov 21 Python
python文件操作之目录遍历实例分析
May 20 Python
python+selenium+autoit实现文件上传功能
Aug 23 Python
Python爬虫抓取代理IP并检验可用性的实例
May 07 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
python 实现视频流下载保存MP4的方法
Jan 09 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
基于Python实现剪切板实时监控方法解析
Sep 11 Python
Python zip函数打包元素实例解析
Dec 11 Python
python实现mask矩阵示例(根据列表所给元素)
Jul 30 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
Jun 22 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
BBS(php & mysql)完整版(七)
2006/10/09 PHP
c#中的实现php中的preg_replace
2009/12/21 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
crontab无法执行php的解决方法
2016/01/25 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
js下用eval生成JSON对象
2010/09/17 Javascript
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
jquery实现图片左右切换的方法
2015/05/07 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
2015/06/23 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
JavaScript创建对象的七种方式全面总结
2017/08/21 Javascript
纯JavaScript实现实时反馈系统时间
2017/10/26 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
python网络编程学习笔记(二):socket建立网络客户端
2014/06/09 Python
python标准算法实现数组全排列的方法
2015/03/17 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
django如何通过类视图使用装饰器
2019/07/24 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
大学生个人自荐信
2014/02/24 职场文书
初三学生个人自我评定
2014/04/06 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
公民授权委托书
2014/10/15 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL