selenium+python自动化测试之使用webdriver操作浏览器的方法


Posted in Python onJanuary 23, 2019

WebDriver简介

selenium从2.0开始集成了webdriver的API,提供了更简单,更简洁的编程接口。selenium webdriver的目标是提供一个设计良好的面向对象的API,提供了更好的支持进行web-app测试。从这篇博客开始,将学习使用如何使用python调用webdriver框架对浏览器进行一系列的操作

打开浏览器

在selenium+python自动化测试(一)?环境搭建中,运行了一个测试脚本,脚本内容如下:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
print(driver.title)
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(3)
driver.close()

运行脚本的第一步是打开浏览器,使用webdriver.Chrome()打开谷歌浏览器,如果要指定其他浏览器,比如要使用Firefox或者IE浏览器,更换浏览器名称就可以了

driver = webdriver.Chrome() //打开Chrome浏览器
driver = webdriver.Firefox() //打开Firefox浏览器
driver = webdriver.Ie() //打开IE浏览器

第二步操作是打开页面,使用driver.get(url)方法来打开网页链接,例如脚本中打开百度首页

driver.get(http://www.baidu.com)

接下来是print(driver.title),使用driver.title获取当前页面的title,title就是在浏览器tab上显示的内容,例如百度首页的标题是“百度一下,你就知道”

浏览器前进后退

在当前页面打开一个新的链接后,如果想回退到前一个页面,使用如下driver.back(),相当于点击了浏览器的后退按钮

和back操作对应的是浏览器前进操作driver.forward(),相当于点击了浏览器的前进按钮

driver.back() //回到上一个页面
driver.forward() //切换到下一个页面

最大化浏览器窗口

浏览器运行后,如果页面没有最大化,可以调用driver.maximize_window()将浏览器最大化,相当于点击了页面右上角的最大化按钮

也可以自定义浏览器的尺寸

driver.maximize_window() //浏览器窗口最大化
driver.set_window_size(800, 720) //设置窗口大小为800*720

屏幕截图

打开页面以后,可以对页面进行截屏,在遇到异常的时候,根据截图可以快速定位问题的原因所在

浏览器截屏操作,参数是截屏的图片保存路径:

driver.get_screenshot_as_file("D:/data/test.png")

页面刷新

有时页面过期后,网页上显示的信息可能不是最新的,需要对页面进行刷新,使用refresh()方法刷新页面,相当于点击浏览器的刷新按钮

driver.refresh() //重新加载页面

退出浏览器

在测试脚本运行完后,一般会在最后关闭浏览器,有两种方法关闭浏览器,close()方法用于关闭当前页面,quit()方法关闭所有和当前测试有关的浏览器窗口

driver.close() //关闭当前页面
driver.quit() //关闭所有由当前测试脚本打开的页面

这篇博客介绍了操作浏览器的各种方法,下篇将介绍如何查找页面上的元素

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python获取beautifulphoto随机某图片代码实例
Dec 18 Python
django 自定义用户user模型的三种方法
Nov 18 Python
Python装饰器的函数式编程详解
Feb 27 Python
python使用MySQLdb访问mysql数据库的方法
Aug 03 Python
总结网络IO模型与select模型的Python实例讲解
Jun 27 Python
Python常见工厂函数用法示例
Mar 21 Python
Python 控制终端输出文字的实例
Jul 12 Python
Python 列表去重去除空字符的例子
Jul 20 Python
Python实现图像去噪方式(中值去噪和均值去噪)
Dec 18 Python
Pytorch中.new()的作用详解
Feb 18 Python
python Django 反向访问器的外键冲突解决
May 20 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
对Python实现累加函数的方法详解
Jan 23 #Python
python实现K近邻回归,采用等权重和不等权重的方法
Jan 23 #Python
Python+OpenCV图片局部区域像素值处理改进版详解
Jan 23 #Python
selenium+python自动化测试之环境搭建
Jan 23 #Python
在python带权重的列表中随机取值的方法
Jan 23 #Python
Appium+Python自动化测试之运行App程序示例
Jan 23 #Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 #Python
You might like
第十四节 命名空间 [14]
2006/10/09 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
2018/09/29 PHP
javascript编程起步(第二课)
2007/01/10 Javascript
利用js跨页面保存变量做菜单的方法
2008/01/17 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
js格式化时间小结
2014/11/03 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
js绘制一条直线并旋转45度
2020/08/21 Javascript
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
python获取本地计算机名字的方法
2015/04/29 Python
Python批量查询域名是否被注册过
2017/06/21 Python
python中文乱码不着急,先看懂字节和字符
2017/12/20 Python
cmd运行python文件时对结果进行保存的方法
2018/05/16 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
python实现人机五子棋
2020/03/25 Python
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
普通简短的个人自我评价
2014/02/15 职场文书
户外活动策划方案
2014/03/12 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
用python开发一款操作MySQL的小工具
2021/05/12 Python
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python
redis数据一致性的实现示例
2022/03/18 Redis