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 fileinput模块使用实例
May 28 Python
python统计文本文件内单词数量的方法
May 30 Python
Python 中开发pattern的string模板(template) 实例详解
Apr 01 Python
基于Python对象引用、可变性和垃圾回收详解
Aug 21 Python
Python初学者需要注意的事项小结(python2与python3)
Sep 26 Python
python pandas读取csv后,获取列标签的方法
Nov 12 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
python 实现dict转json并保存文件
Dec 05 Python
在 Python 中接管键盘中断信号的实现方法
Feb 04 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
pycharm 如何取消连按两下shift出现的全局搜索
Jan 15 Python
写一个Python脚本自动爬取Bilibili小视频
Apr 24 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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
PHP has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
ECMAScript6快速入手攻略
2016/07/18 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
jQuery中实现text()的方法
2019/04/04 jQuery
django中使用vue.js的要点总结
2019/07/07 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
Python网络爬虫实例讲解
2016/04/28 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
Python重新加载模块的实现方法
2018/10/16 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
python绘制彩虹图
2019/12/16 Python
在Python IDLE 下调用anaconda中的库教程
2020/03/09 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
物业管理专业个人的自我评价
2013/11/19 职场文书
副厂长岗位职责
2014/02/02 职场文书
公司司机岗位职责
2014/02/07 职场文书
房地产公司见习自我鉴定
2014/04/28 职场文书
本科毕业论文指导教师评语
2014/12/30 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript