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 16 Python
python执行子进程实现进程间通信的方法
Jun 02 Python
剖析Python的Tornado框架中session支持的实现代码
Aug 21 Python
简单谈谈Python中的反转字符串问题
Oct 24 Python
Python切片操作实例分析
Mar 16 Python
Jupyter notebook远程访问服务器的方法
May 24 Python
Python绘制的二项分布概率图示例
Aug 22 Python
Python 转换文本编码实现解析
Aug 27 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
tensorflow 只恢复部分模型参数的实例
Jan 06 Python
python用opencv完成图像分割并进行目标物的提取
May 25 Python
用python写PDF转换器的实现
Oct 29 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数组(array)输出的三种形式详解
2013/06/05 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
Jquery 扩展方法
2010/05/06 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
PHP守护进程实例
2015/03/06 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
vue相关配置文件详解及多环境配置详细步骤
2020/05/19 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
Django自定义manage命令实例代码
2018/02/11 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
2020/06/22 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
python批量修改交换机密码的示例
2020/09/22 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
如何做好总经理助理
2013/11/12 职场文书
小学家长会邀请函
2014/01/23 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
《落花生》教学反思
2016/02/16 职场文书
2019年新郎保证书3篇
2019/10/17 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS
Python实战实现爬取天气数据并完成可视化分析详解
2022/06/16 Python