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开发的小球完全弹性碰撞游戏代码
Oct 15 Python
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
为Python的Tornado框架配置使用Jinja2模板引擎的方法
Jun 30 Python
分分钟入门python语言
Mar 20 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
Jun 11 Python
python获取交互式ssh shell的方法
Feb 14 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
Jun 04 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
Oct 24 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
Apr 24 Python
利用scikitlearn画ROC曲线实例
Jul 02 Python
Python Merge函数原理及用法解析
Sep 16 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
PHP中基本符号及使用方法
2010/03/23 PHP
php学习之流程控制实现代码
2011/06/09 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
php实现在线生成条形码示例分享(条形码生成器)
2013/12/30 PHP
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
利用AngularJs实现京东首页轮播图效果
2016/09/08 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
17个Python小技巧分享
2015/01/23 Python
python生成excel的实例代码
2017/11/08 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
销售人员中英文自荐信
2013/09/22 职场文书
创业资金计划书
2014/02/06 职场文书
迎新生晚会主持词
2015/06/30 职场文书