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环境下搭建属于自己的pip源的教程
May 05 Python
Python中将字典转换为列表的方法
Sep 21 Python
100行Python代码实现自动抢火车票(附源码)
Jan 11 Python
python list元素为tuple时的排序方法
Apr 18 Python
python递归函数绘制分形树的方法
Jun 22 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
pandas的to_datetime时间转换使用及学习心得
Aug 11 Python
Python 中判断列表是否为空的方法
Nov 24 Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 Python
Django-celery-beat动态添加周期性任务实现过程解析
Nov 26 Python
一文搞懂Python Sklearn库使用
Aug 23 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
新手学PHP之数据库操作详解及乱码解决!
2007/01/02 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
Javascript 圆角div的实现代码
2009/10/15 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
2016/04/14 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
jQuery中的deferred对象和extend方法详解
2017/05/08 jQuery
基于React+Redux的SSR实现方法
2018/07/03 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
electron实现qq快捷登录的方法示例
2018/10/22 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
wxPython 入门教程
2008/10/07 Python
Python采用raw_input读取输入值的方法
2014/08/18 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
python安装教程
2018/02/28 Python
TensorFlow Session使用的两种方法小结
2018/07/30 Python
详解python使用turtle库来画一朵花
2019/03/21 Python
python获取引用对象的个数方式
2019/12/20 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
2020/04/16 Python
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
财务主管自我鉴定
2014/01/17 职场文书
女子职高个人自荐书
2014/02/01 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
假期读书倡议书3篇
2019/08/19 职场文书
mysql升级到5.7时,wordpress导数据报错1067的问题
2021/05/27 MySQL