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网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
Apr 25 Python
python timestamp和datetime之间转换详解
Dec 11 Python
名片管理系统python版
Jan 11 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
Mar 18 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
Sep 11 Python
python实现画循环圆
Nov 23 Python
基于python-pptx库中文文档及使用详解
Feb 14 Python
python3 hdf5文件 遍历代码
May 19 Python
Python基础之元编程知识总结
May 23 Python
python实现A*寻路算法
Jun 13 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 foreach 参数强制类型转换的问题
2010/12/10 PHP
JavaScript 字符串与数组转换函数[不用split与join]
2009/12/13 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
JS前向后瞻正则表达式定义与用法示例
2016/12/27 Javascript
Vue监听数组变化源码解析
2017/03/09 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
[02:35]DOTA2英雄基础教程 狙击手
2014/01/14 DOTA
python开发环境PyScripter中文乱码问题解决方案
2016/09/11 Python
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
python如何定义带参数的装饰器
2018/03/20 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
python Pillow图像处理方法汇总
2019/10/16 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
2020/11/15 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
HTML5实现签到 功能
2018/10/09 HTML / CSS
努比亚手机官网:nubia
2016/10/06 全球购物
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
广告语设计及教案
2014/03/21 职场文书
交通事故和解协议书
2014/09/25 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
地道战观后感500字
2015/06/04 职场文书
Vue全家桶入门基础教程
2021/05/14 Vue.js
利用JavaScript写一个简单计算器
2021/11/27 Javascript
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技