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的迭代器和生成器使用实例
Jan 14 Python
使用Python程序抓取新浪在国内的所有IP的教程
May 04 Python
Python简单实现安全开关文件的两种方式
Sep 19 Python
用Python写一段用户登录的程序代码
Apr 22 Python
numpy返回array中元素的index方法
Jun 27 Python
详解python中Numpy的属性与创建矩阵
Sep 10 Python
如何利用python制作时间戳转换工具详解
Sep 12 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
Python同时迭代多个序列的方法
Jul 28 Python
手把手教你将Flask应用封装成Docker服务的实现
Aug 19 Python
Pycharm安装python库的方法
Nov 24 Python
Python按顺序遍历并读取文件夹中文件
Apr 29 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
牡丹941资料
2021/03/01 无线电
AM/FM收音机的安装与调试
2021/03/02 无线电
php 远程图片保存到本地的函数类
2008/12/08 PHP
PHP 写文本日志实现代码
2010/05/18 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
CentOS安装php v8js教程
2015/02/26 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
PHP 使用位运算实现四则运算的代码
2021/03/09 PHP
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
vue中echarts引入中国地图的案例
2020/07/28 Javascript
python中的内置函数getattr()介绍及示例
2014/07/20 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
Python调用C++,通过Pybind11制作Python接口
2018/10/16 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
python简单验证码识别的实现方法
2019/05/10 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
AmazeUI 平滑滚动效果的示例代码
2020/08/20 HTML / CSS
考博自荐信
2013/10/25 职场文书
销售员态度差检讨书
2014/10/26 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
放牛班的春天观后感
2015/06/01 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python
关于golang高并发的实现与注意事项说明
2021/05/08 Golang