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 多线程实例详解
Mar 25 Python
Python的IDEL增加清屏功能实例
Jun 19 Python
python+pyqt实现12306图片验证效果
Oct 25 Python
Python自定义简单图轴简单实例
Jan 08 Python
Python requests模块实例用法
Feb 11 Python
Python实现的对一个数进行因式分解操作示例
Jun 27 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
详解Django中异步任务之django-celery
Nov 05 Python
python连接mongodb数据库操作数据示例
Nov 30 Python
tensorflow学习笔记之tfrecord文件的生成与读取
Mar 31 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
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
js 深拷贝函数
2008/12/04 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
AngularJS解决ng界面长表达式(ui-set)的方法分析
2016/11/07 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
详解JavaScript中typeof与instanceof用法
2018/10/24 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
2020/03/16 Javascript
Quasar Input:type="number" 去掉上下小箭头 实现加减按钮样式功能
2020/04/09 Javascript
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
如何利用python读取micaps文件详解
2020/10/18 Python
python实现三壶谜题的示例详解
2020/11/02 Python
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
国贸专业个人求职信范文
2014/01/08 职场文书
劳动竞赛活动方案
2014/02/20 职场文书
诚信考试标语
2014/06/24 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
婚前协议书范本
2014/10/27 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
大学生个人学年总结
2015/02/15 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android