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 相关文章推荐
haskell实现多线程服务器实例代码
Nov 26 Python
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
Python文本特征抽取与向量化算法学习
Dec 22 Python
python利用百度AI实现文字识别功能
Nov 27 Python
对Python 检查文件名是否规范的实例详解
Jun 10 Python
对python3 sort sorted 函数的应用详解
Jun 27 Python
python打包exe开机自动启动的实例(windows)
Jun 28 Python
Django项目中使用JWT的实现代码
Nov 04 Python
python+requests实现接口测试的完整步骤
Oct 27 Python
Django celery异步任务实现代码示例
Nov 26 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
python FTP编程基础入门
Feb 27 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项目的方法
2006/10/09 PHP
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
PHP代码优化技巧小结
2015/09/29 PHP
Zend Framework教程之Bootstrap类用法概述
2016/03/14 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
django基础之数据库操作方法(详解)
2017/05/24 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
提升Python效率之使用循环机制代替递归函数
2019/07/23 Python
如何用Python来理一理红楼梦里的那些关系
2019/08/14 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
如何强制垃圾回收
2015/10/06 面试题
上海微创软件面试题
2012/06/14 面试题
保护母亲河倡议书
2014/04/14 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
Python标准库pathlib操作目录和文件
2021/11/20 Python