使用Python+selenium实现第一个自动化测试脚本

这篇文章主要介绍了使用Python+selenium实现第一个自动化测试脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

最近在学web自动化,记录一下学习过程。

此处我选用python3.6+selenium3.0,均用最新版本,以适应未来需求。

环境:windows10,64位

一、安装python

python官方下载地址:Download Python | Python.org

​进入页面就有两个版本的下载选择,2.x版本和3.x版本,或者根据系统选择对应版本。

点击Windows,跳转到Windows版本页面:

​点选Python3.6.0版本,进入3.6版本页面,拉到页面下方,找到files

​选择64位or32位(x86-64即64,x86即32位),每种都有3个版本

embeddable zip file是嵌入式的,可以集成到其它应用中;

executable installer是exe可执行文件方式安装;

web-based installer是联网安装包,需要有网络环境;

如果不是嵌入式的,后两种方式都是可以的。这里我下的是web-based版本,下载后双击运行,进入安装程序:

可选默认安装方式,也可自定义安装,两种方式都需勾上下方的Add Python 3.6 to PATH,这里我们选自定义安装Customize installation

​这里我们按默认全选即可,Next

​勾上第一个选项,选择安装路径后(注意安装路径不要包含中文,否则后面安装工具可能会报错),点击install就开始安装了

等待安装...

​安装完成,点击close,python安装完毕~ 前面已勾选了add path,所以无需设置任何系统变量,即可使用。

安装后点击开始菜单,在菜单最上面能找到IDLE

IDLE是python自带的shell,点击打开,即可开始编写python脚本了~~

二、安装selenium

上面python已安装完毕,接下来安装selenium。

安装selenium之前需安装些必要工具

1. 安装setuptools

下载地址:setuptools · PyPI

在页面找到zip安装包,下载后解压。在命令行(运行->cmd)进入解压目录

执行 python setup.py install 即可安装,注意解压路径不要包含中文,否则安装会报错。

2.安装pip

下载地址:pip · PyPI

​在页面找到pip-9.x.tar.gz,下载后解压。同样在命令行进入解压目录,执行 python setup.py install 即可自动安装。

3.安装selenium

上面2个工具安装好后,安装selenium只需在命令行进入python安装路径Script目录下,执行 pip install -U selenium 即可自动安装。

完成安装后在IDLE输入 from selenium import webdriver ,如果没报错即代表安装成功。

三 注意事项

1. selenium3.0需要独立安装Firefox驱动,不再自带驱动,下载地址: Releases · mozilla/geckodriver · GitHub 下载对应版本,解压放在python安装路径下即可;

2. geckodriver驱动要求Friefox浏览器必须48版本以上,如果不是,更新Firefox;

3. 如果用Java开发,需注意3.0必须用JDK1.8版本才行;

4. Chromedriver下载:https://sites.google.com/a/chromium.org/chromedriver/downloads 同样也是下载后放在python安装路径下即可。

四 第一个自动化脚本

完成上面所有准备工作,就可以开始第一个自动化脚本的编写啦~

打开IDLE,通过快捷键ctrl+n打开一个新窗口,在新窗口输入以下代码:

# coding = utf-8from selenium import webdriverbrowser = webdriver.Firefox()browser.get("http://www.baidu.com")browser.find_element_by_id("kw").send_keys("selenium")browser.find_element_by_id("su").click()browser.quit()

保存为test1.py,通过快捷键F5运行脚本,可看到脚本启动Firefox浏览器进入百度页,输入“selenium” 点击搜索按钮,最后关闭浏览器的过程。第一个脚本即完成了~

# coding = utf-8为了防止乱码问题,以及在程序中添加中文注释,把编码统一成 UTF-8;from selenium import webdriver导入selenium的webdriver包,导入webdriver包后才能使用 webdriver API 进行自动化脚本开发;browser = webdriver.Firefox()将控制的 webdriver 的 Firefox 赋值给 browser;获得了浏览器对象才可以启动浏览器;browser.get("http://www.baidu.com")获得浏览器对象后,通过 get()方法,向浏览器发送网址;browser.find_element_by_id("kw").send_keys("selenium")通过 id=kw 定位到百度的输入框,并通过键盘方法send_keys()向输入框里输入selenium ;browser.find_element_by_id("su").click()通过 id=su 定位到搜索按钮,并向按钮发送单击事件(click()) ;browser.quit()退出并关闭窗口的每一个相关的驱动程序。

到此这篇关于使用Python+selenium实现第一个自动化测试脚本的文章就介绍到这了,更多相关Python selenium 自动化测试内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持小编!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leeetcode_2530 执行k次操作后的最大分数

1. 题意 给定一个整数数组&#xff0c;每次可以取出一个数累加并丢弃&#xff0c;并将该数的1/3 向上取整放回。 执行k次操作后的最大分数 2. 题解 每次取插入后的最大值&#xff0c;所以需要大根堆。 STL里面用priority_queue<int> pq默认大根堆。 小根堆priority_…

快速解决 Resource not accessible by integration

简介 最近好久没有写博客了&#xff0c;今天在写开源项目 python-package-template 的时候&#xff0c;正好遇到一个问题&#xff0c;记录一下吧。本文将介绍 Resource not accessible by integration 的几种解决方案。 也欢迎大家体验一下 python-package-template 这个项目&…

黑白棋(Othello, ACM/ICPC World Finals 1992, UVa220)rust解法

你的任务是模拟黑白棋游戏的进程。黑白棋的规则为&#xff1a;黑白双方轮流放棋子&#xff0c;每次必须让新放的棋子“夹住”至少一枚对方棋子&#xff0c;然后把所有被新放棋子“夹住”的对方棋子替换成己方棋子。一段连续&#xff08;横、竖或者斜向&#xff09;的同色棋子被…

SpringCloud: sentinel热点参数限制

一、定义controller package cn.edu.tju.controller;import com.alibaba.csp.sentinel.annotation.SentinelResource; import com.alibaba.csp.sentinel.slots.block.BlockException; import org.springframework.web.bind.annotation.PathVariable; import org.springframewo…

Unity笔记--渲染顺序

目录 Unity中的渲染顺序一、Camera层二、透明类型&#xff08;先渲染不透明&#xff09;三、物体的SortingLayer&#xff08;越小越先渲染&#xff09;四、sorting order&#xff08;越小越先渲染&#xff09;五、RenderQueue &#xff08;越小越优先&#xff09;六、距离相机z…

【算法设计zxd】第6章 回溯法

目录 6.1 回溯法的设计技术 &#xff1a; 四皇后问题 回溯法&#xff1a; 算法框架&#xff1a; 思考题&#xff1a; 回溯算法的适用条件 【例6-1】求满足下列不等式的所有整数解&#xff1a; 6.2回溯算法的经典例题 【例6-2】装载问题  问题分析 计算模型  算法设计与描…

BookStack 详解及 Docker-Compose 部署

BookStack 是一款用于创建文档和文档管理的开源平台。它提供了一个直观且功能丰富的界面&#xff0c;可用于组织和管理各种文档&#xff0c;包括文档编写、编辑和共享。本文将介绍 BookStack 的核心功能&#xff0c;并展示如何使用 Docker-Compose 快速部署 BookStack。 BookS…

Pika v3.5.1发布!

Pika 社区很高兴宣布&#xff0c;我们今天发布已经过我们生产环境验证 v3.5.1 版本&#xff0c;https://github.com/OpenAtomFoundation/pika/releases/tag/v3.5.1 。 该版本不仅做了很多优化工作&#xff0c;还引入了多项新功能。这些新功能包括 动态关闭 WAL、ReplicationID…

BI零售数据分析,当代零售企业的核心竞争力

在数字化转型中&#xff0c;BI智能零售数据分析成为了极其重要的核心竞争力之一。通过对大数据的采集和分析&#xff0c;零售企业可以更好地了解消费者的需求和行为模式&#xff0c;从而做出更准确的决策。例如&#xff0c;通过分析消费者的购物历史、浏览记录等数据&#xff0…

小程序无感刷新

下载wechat-http依赖 npm install wechat-http封装请求拦截器和相应拦截器&#xff0c;借助refreshToken实现无感刷新 // 导入 http 模块 import http from wechat-http // 基础路径&#xff0c;同时需添加合法请求域名 http.baseURL https://live-api.itheima.net // 配置请…

CLIP模型原理

CLIP模型 CLIP(Contrastive Language-Image Pre-Training) 模型是 OpenAI 在 2021 年初发布的用于匹配图像和文本的预训练神经网络模型&#xff0c;是近年来在多模态研究领域的经典之作。OpenAI 收集了 4 亿对图像文本对&#xff08;一张图像和它对应的文本描述&#xff09;&a…

Messari发布Moonbeam简报,每日交易量稳步增长,首次公布利润数据

区块链数据公司Messari首次发布Moonbeam项目分析简报&#xff0c;从项目市值、链上数据表现、质押以及Moonbeam的技术优势XCM使用量等角度全面分析。这个再熊市初期上线的项目一直在默默开发&#xff0c;并在跨链互操作领域拥有了相当的实操成绩。我们翻译了Messari简报中的部分…

【Vue项目】通过设置全局的异常处理来统一处理后端返回的异常

文章目录 简介方法一创建统一异常处理模块使用axios拦截器处理异常在页面中使用异常处理 方法二创建全局异常处理函数在main.js中配置全局异常处理在网络请求中捕获异常 方法三创建全局异常处理插件在main.js中注册全局异常处理插件在网络请求中捕获异常 总结 简介 在Vue项目中…

aps.net core 6.0 web API SwaggerUI IIS部署【23.10.15】亲测,通过

目录 一、aps.net core 6.0 web API 项目配置 创建项目设置 Swagger UI 为起始页发布项目二、在 IIS 部署 安装IIS安装 Hosting Bundle三、内网穿透 使用的是 VS2022社区版&#xff0c;WebAPI的版本是 .netcore6.0 一、aps.net core 6.0 web API 项目配置 1.创建项目 运行项目…

计算机毕业设计 基于Spring Boot智能停车计费系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

PCB命名规则-allegro

PCB命名规则-allegro 一、焊盘命名规则 1、 贴片矩形焊盘 命名规则&#xff1a;SMD长&#xff08;L&#xff09;宽&#xff08;W&#xff09;&#xff08;mil&#xff09; 举例&#xff1a;SMD90X60 2、 贴片圆焊盘 命名规则&#xff1a;SMDC焊盘直径&#xff08;D&…

程序设计:C++ UNIX/Linux 目录操作(源码)

UNIX/Linux上的目录操作。 几个功能&#xff1a; 判断是否是目录 创建路径 递归清理目录 递归处理目录的框架 代码不复杂&#xff0c;前三个就是函数&#xff08;在同一个类中&#xff09;&#xff0c;最后一个是独立类&#xff0c;完整如下&#xff1a; …

蓝桥杯 常用STL (C++) 未完待续

动态数组 有些时候想开一个数组&#xff0c;但是却不知道应该开多大长度的数组合适&#xff0c;因为我们需要用到的数组可能会根据情况变动。 这时候我们就需要用到动态数组。所谓动态数组&#xff0c;也就是不定长数组&#xff0c;数组的长度是可以根据我们的需要动态改变的。…

Unity3D 在URP渲染管线中有没有什么替代Surface Shader的方案详解

在Unity3D的URP&#xff08;Universal Render Pipeline&#xff09;渲染管线中&#xff0c;Surface Shader是一种常用的方案&#xff0c;用于定义物体的外观和表面属性。然而&#xff0c;除了Surface Shader&#xff0c;还有其他一些替代方案可供选择。本文将详细介绍URP渲染管…

解决在部署springboot项目的docker中执行备份与之相连接的mysql容器命令

文章目录 问题描述解决思路问题解决容器构建mysql客户端安装容器与主机的交互docker中执行 mysqldump 命令解决mysql8密码验证问题解决密码插件警告 问题描述 由于&#xff0c;使用1panel可视化的面板来部署springboot项目&#xff0c;可以很方便地安装和使用mysql&#xff0c…