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实现的一个找零钱的小程序代码分享
Aug 25 Python
Django框架下在URLconf中指定视图缓存的方法
Jul 23 Python
python实现class对象转换成json/字典的方法
Mar 11 Python
Python实现购物车功能的方法分析
Nov 10 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
Apr 19 Python
python机器学习之神经网络实现
Oct 13 Python
python项目对接钉钉SDK的实现
Jul 15 Python
python基于socket实现的UDP及TCP通讯功能示例
Nov 01 Python
解决python 读取 log日志的编码问题
Dec 24 Python
python logging模块的使用详解
Oct 23 Python
django中ImageField的使用详解
Dec 21 Python
Python截图并保存的具体实例
Jan 14 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+JS实现搜索自动提示(实例)
2013/06/09 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
js读取本地excel文档数据的代码
2010/11/11 Javascript
jquery 笔记 事件
2011/11/02 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
jQuery通过ajax快速批量提交表单数据
2016/10/25 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
简介Python中用于处理字符串的center()方法
2015/05/18 Python
Python pickle模块用法实例分析
2015/05/27 Python
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
基于Python闭包及其作用域详解
2017/08/28 Python
python爬虫使用cookie登录详解
2017/12/27 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
Django进阶之CSRF的解决
2018/08/01 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
苹果中国官方网站:Apple中国
2016/07/22 全球购物
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
求职面试个人自我评价
2014/02/28 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
大学生简短的自我评价
2014/09/12 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
Python词云的正确实现方法实例
2021/05/08 Python
mysql数据库如何转移到oracle
2022/12/24 MySQL