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中使用gzip模块压缩文件的简单教程
Apr 08 Python
在Python中处理字符串之ljust()方法的使用简介
May 19 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 Python
基于Python中capitalize()与title()的区别详解
Dec 09 Python
Pyinstaller将py打包成exe的实例
Mar 31 Python
Python进阶之自定义对象实现切片功能
Jan 07 Python
python实现ip代理池功能示例
Jul 05 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
在python中使用nohup命令说明
Apr 16 Python
如何使用 Python 读取文件和照片的创建日期
Sep 05 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 07 Python
Python实现信息轰炸工具(再也不怕说不过别人了)
Jun 11 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
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
php微信扫码支付 php公众号支付
2019/03/24 PHP
各种常用浏览器getBoundingClientRect的解析
2009/05/21 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
多种JQuery循环滚动文字图片效果代码
2020/06/23 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
vue快捷键与基础指令详解
2017/06/01 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
python模拟鼠标拖动操作的方法
2015/03/11 Python
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
Python 探针的实现原理
2016/04/23 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
python批量生成条形码的示例
2020/10/10 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
美国网上眼镜供应商:LEOTONY(眼镜、RX太阳镜和太阳镜)
2017/10/31 全球购物
亲戚关系证明
2015/06/24 职场文书
感恩的心主题班会
2015/08/12 职场文书
部门主管竞聘书
2015/09/15 职场文书
浅谈:电影《孔子》观后感(范文)
2019/10/14 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书