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中的正则表达式的用法
Apr 09 Python
Python2.x中文乱码问题解决方法
Jun 02 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
Dec 15 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
Feb 21 Python
使用pytorch进行图像的顺序读取方法
Jul 27 Python
python django中8000端口被占用的解决
Dec 17 Python
基于keras输出中间层结果的2种实现方式
Jan 24 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 Python
Python requests上传文件实现步骤
Sep 15 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
Oct 30 Python
Python如何telnet到网络设备
Feb 18 Python
解决pytorch 损失函数中输入输出不匹配的问题
Jun 05 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关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
PHP实现八皇后算法
2019/05/06 PHP
PHP7 foreach() 函数修改
2021/03/09 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
中止javascript执行的方法
2014/02/14 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
JS根据变量保存方法名并执行方法示例
2014/04/04 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
javaScript中push函数用法实例分析
2015/06/08 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
浅谈vue加载优化策略
2019/03/19 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
利用Hyperic调用Python实现进程守护
2018/01/02 Python
Python中is和==的区别详解
2018/11/15 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
酒店营销策划方案
2014/02/07 职场文书
一月红领巾广播稿
2014/02/11 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
酒店管理毕业生自我鉴定
2014/03/02 职场文书
考试作弊检讨书
2015/01/27 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书