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 k-近邻算法实例分享
Jun 11 Python
python安装Scrapy图文教程
Aug 14 Python
Python创建对称矩阵的方法示例【基于numpy模块】
Oct 12 Python
python快速建立超简单的web服务器的实现方法
Feb 17 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
Oct 14 Python
python适合人工智能的理由和优势
Jun 28 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
Sep 11 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
python实现指定ip端口扫描方式
Dec 17 Python
详解Python实现进度条的4种方式
Jan 15 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
May 25 Python
python调试工具Birdseye的使用教程
May 25 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 文章调用类代码
2011/08/11 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
教你JS中的运算符乘方、开方及变量格式转换
2016/08/09 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
2016/12/17 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
Vue 请求传公共参数的操作
2020/07/31 Javascript
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
Python列表生成器的循环技巧分享
2015/03/06 Python
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
Python中顺序表的实现简单代码分享
2018/01/09 Python
Python json模块dumps、loads操作示例
2018/09/06 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
Python 如何定义匿名或内联函数
2020/08/01 Python
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
实验室的标语
2014/06/20 职场文书
中国梦团日活动总结
2014/07/07 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
学习三严三实心得体会
2014/10/13 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
公证书格式
2015/01/23 职场文书
技术员岗位职责
2015/02/04 职场文书