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中操作字典之setdefault()方法的使用
May 21 Python
Python3实现抓取javascript动态生成的html网页功能示例
Aug 22 Python
Python操作mysql数据库实现增删查改功能的方法
Jan 15 Python
python实现冒泡排序算法的两种方法
Mar 10 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
Django Rest framework之权限的实现示例
Dec 17 Python
python 动态生成变量名以及动态获取变量的变量名方法
Jan 20 Python
MxNet预训练模型到Pytorch模型的转换方式
May 25 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 Python
Python SMTP发送电子邮件的示例
Sep 23 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 Python
Python运算符+与+=的方法实例
Feb 18 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 microtime获取浮点的时间戳
2010/02/21 PHP
php中的常用魔术方法总结
2013/08/02 PHP
memcache命令启动参数中文解释
2014/01/13 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
收集json解析的四种方法分享
2014/01/17 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
Python的动态重新封装的教程
2015/04/11 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
is_file和file_exists效率比较
2021/03/14 PHP
一些Solaris面试题
2015/12/22 面试题
工业设计毕业生自荐信
2014/04/13 职场文书
交通事故调解协议书
2014/04/16 职场文书
艺术教育实施方案
2014/05/03 职场文书
人事主管岗位职责说明书
2014/07/30 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
警察群众路线整改措施
2014/09/26 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
财务年终工作总结大全
2019/06/20 职场文书
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android