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 translator使用实例
Sep 06 Python
Python使用scrapy抓取网站sitemap信息的方法
Apr 08 Python
Python里disconnect UDP套接字的方法
Apr 23 Python
老生常谈进程线程协程那些事儿
Jul 24 Python
解决pycharm工程启动卡住没反应的问题
Jan 19 Python
通过python实现随机交换礼物程序详解
Jul 10 Python
python 实现绘制整齐的表格
Nov 18 Python
Django ORM 查询表中某列字段值的方法
Apr 30 Python
Pytorch数据拼接与拆分操作实现图解
Apr 30 Python
Python中的Cookie模块如何使用
Jun 04 Python
Python-for循环的内部机制
Jun 12 Python
Django框架安装及项目创建过程解析
Sep 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
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
PHP 获取目录下的图片并随机显示的代码
2009/12/28 PHP
PHP执行zip与rar解压缩方法实现代码
2010/12/05 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
2017/09/30 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
2019/05/21 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
解决python运行效率不高的问题
2020/07/20 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
linux面试题参考答案(1)
2016/01/22 面试题
大学生学年自我鉴定
2014/02/10 职场文书
新学期决心书
2014/03/11 职场文书
职业规划实施方案
2014/06/10 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
2014年计生协会工作总结
2014/11/21 职场文书
工程催款通知书
2015/04/17 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python