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抓取网页图片示例(python爬虫)
Apr 27 Python
Python读取环境变量的方法和自定义类分享
Nov 22 Python
Python实现压缩和解压缩ZIP文件的方法分析
Sep 28 Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 Python
django-初始配置(纯手写)详解
Jul 30 Python
python脚本后台执行方式
Dec 21 Python
详解Pycharm出现out of memory的终极解决方法
Mar 03 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
Mar 10 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
python实现定时发送邮件到指定邮箱
Dec 23 Python
flask框架中的cookie和session使用
Jan 31 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 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 读取文件乱码问题
2010/02/20 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
PHP Curl出现403错误的解决办法
2014/05/29 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
jQuery select的操作实现代码
2009/05/06 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
Python socket C/S结构的聊天室应用实现
2014/11/30 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
Django之路由层的实现
2019/09/09 Python
基于python3生成标签云代码解析
2020/02/18 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
利用python汇总统计多张Excel
2020/09/22 Python
Mio Skincare美国官网:身体紧致及孕期身体护理
2017/03/05 全球购物
群胜软件Java笔试题
2012/09/29 面试题
车工岗位职责
2013/11/26 职场文书
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
公司合作意向书
2014/04/01 职场文书
《乡下孩子》教学反思
2014/04/17 职场文书
爱国演讲稿400字
2014/05/07 职场文书
经典演讲稿开场白
2014/08/25 职场文书
党支部评议意见
2015/06/02 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers