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

Python+Selenium自动化测试项目实战 自动化测试就是通过自动化测试工具帮我们打开浏览器,输入网址,输入账号密码登录,及登录后的操作,总的说来自动化测试就是通过自动化测试脚本来帮我们从繁琐重复的手工测试里面解脱出来,把时间和精力花到更好的地方去,去挖掘更多的产品缺陷。例如网上有一些人提供智慧树网、学习通等网课的刷课及答题的服务就是通过写自动化测试程序去完成的。还有一些高速抢票平台也是通过定时执行自动化程序脚本代替人工去抢票。 阅读详情
AI摘要

本文介绍如何使用Python和Selenium进行网页自动化测试,包括环境搭建、基本测试脚本编写,并提及与ONES平台自动化测试集成的方法。

一,安装Python.

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

python


安装后点击开始菜单,在菜单最上面能找到IDLE.
IDLE是python自带的shell, 点击打开, 即可开始编写python脚本了.

IDLE

二,安装selenium

上面python已安装完成,接下来安装selenium.
安装selenium之前需要安装必要工具. setuptools
安装后,(比如zip包形式安装),进入解压的目录,在命令行执行如下命令即可安装.

python setup.py install

再然后安装pip
pip · PyPI
同样,安装tar或解压包,进入目录cmd执行python setup.py install即可安装

安装selenium
上面2个工具安装好后,安装selenium只需在命令行进入python安装路径Script目录下,执行

pip install -U selenium

pip install -U selenium

install ok

即可自动安装.
完成安装后在IDLE输入

from selenium import webdriver

测试安装

如果没报错即代表安装成功.

三,注意事项

  1. selenium3.0 需要独立安装FireFox驱动.解压后放在python安装路径下即可.

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

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

  4. 同样谷歌的驱动,没FQ只能使用阿里的镜像了.

注意阿里的镜像对应的谷歌的版本:

Alt text

四,第一个自动化脚本
完成上面所有准备工作,就可以开始第一个自动化脚本的编写了.
打开IDLE,通过快捷键CTRL+N打开一个新窗口,在新窗口输入以下代码:

# coding = utf-8 

from selenium import webdriver 



browser = 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() 

这里如果关的过快,就需要将browser.quit()给去掉.不然看不见操作

写完脚本后脚本页执行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() 

(退出并关闭窗口的每一个相关的驱动程序.)

名词解释:
1.

find_element_by_id()

我们可以直接通过英文意思理解这个方法,通过ID查找元素,也就是使用页面里的id属性:id=”“. 我们先定位百度搜索框,在搜索框里输入我们要查找的内容.

Alt text

2.

find_element_by_name()

这个定位的方法是通过查找名字的方式,对元素进行定位,我们在检查元素的时候看到name=”“,就可以使用这个方法了.

Alt text


3.

find_elements_by_class_name()

这个定位的方法是通过查找class_name的方式对元素进行定位,在检查元素的时候看到class=”“,就可以使用这个方法了.

Alt text


4.

find_element_by_tag_name()

这个定位的方法是通过元素的标签属性对元素进行定位,在检查元素的时候查看元素的最前面的input,但是这个定位方式有个不好的地方在于很多页面都有同样的标签存在,所以我们定位的时候会很麻烦.
所以,这个方法我们不推荐使用. 这个方法也是仅供参考.

Alt text


实际上是会报错的,因为selenium在定位的时候不清楚我们要找的是哪个元素.

Alt text


我们如果一定要用这个方法的花,我们就需要清楚,我们定位的标签的精准位置.
5.

find_element_by_link_text()

这个定位方式是通过查找页面的文本信息进行定位. 也就是我们看到页面的信息去定位, 例如:我们需要定位百度首页的登录按钮.并点击它.

Alt text

Alt text


6.

find_element_by_partial_link_text()

这个方法的定位方式就是通过模糊文本信息查找元素,有些时候,我们希望定位到一个文本比较长的元素时,我们就可以通过这个方法去定位.
例如: 定位百度首页页脚下的”使用百度前必读”, 我们是输入”使用”.

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("http://www.baidu.com")

driver.find_element_by_partial_link_text("使用").click()

这样我们也是可以定位到该元素的.
7.

find_element_by_xpath()

最后来说两种最常用的定位方法,xpath元素定位:通过查找元素的路径去查找元素.
这两个方法在使用上目前很广泛,也很多人推荐使用.这两个很方便,因为浏览器已经帮我们做好准备了,我们只需要复制粘贴就可以了.
我们继续定位搜索框.

Alt text


这样我们直接复制xpath路径就可以了,这样就可以解决我们会输入错误元素的问题(注:在使用xpath的时候,最外面的双引号改成单引号.

Alt text


8.

find_element_by_css_selector()

css在操作上跟xpath差不多,也是通过复制粘贴的方式进行定位,不同在于css方法通过对页面中的css元素定位的.

Alt text

之上8条的原blog,内涵有其它的脚本界面工具Autolt的介绍

假设测试test1.给定登录页面的username和password,并点击登录按钮,进行自动登录测试
代码如下:

Alt text


就可以以这条脚本运行,而.py文件保存到桌面也可以直接双击运行(首先要安装python)

Alt text

加入再测试其它功能可以根据获取id,name等继而进行测试操作.上面只是基本测试.
之后需要进行测试案例的编写,返回测试数据. 以及与ones.ai自动化测试连接.

ones的对接文档

通用说明

流水线(pipeline)

参数名值类型取值范围默认值取值例子说明
uuidstringlen=8pipeline uuid
namestringlen<=32pipeline 名称
ownerstringlen=8pipeline 创建者 uuid
create_timeint64pipeline 创建时间(秒)
projectobjectpipeline 绑定的 project 信息
 uuidstringlen=8项目 uuid
 namestring项目名称
configure_statusesobjectpipeline 配置状态
 scmobject代码仓库集成配置状态,参考下方说明
 ciobject持续集成配置状态,参考下方说明
 lintobject代码质量检查配置状态,参考下方说明
 testobject自动化测试配置状态,参考下方说明
 artifactobject部署结果关联配置状态,参考下方说明
branchesarraypipeline 下的已知分支列表,参考下方说明
branch_sprint_bindingsarraypipeline 下分支与迭代的绑定列表,参考下方说明
sprint_binding_rulestringpipeline 与项目下迭代的自动绑定规则, 参考下方说明

API 说明

1. pipeline 回调

创建一个 pipeline

URL

https://api.ones.ai/project/team/:teamUUID/pipeline/:pipelineUUID/callback

HTTP Method

POST

调用权限

无

传值方式

JSON

参数说明

{

  "action": "stage",

  "stage": {

      "type": "test",//stage 类型:start,finish,lint,test

      "name": "test",//stage 名称, eg: "test"

      "start_time": start_time, //阶段的开始时间,单位秒

      "finish_time": finish_time, //阶段的结束时间,单位秒

      "status": status, //stage 状态:unknown,success,failure

  },

  "payload": {

      "test": {

          "executions": [{

              "language":"python", // 测试语言

              "framework":"selenium", // 测试框架名

              "id":"", // 执行结果的 ID

              "start_time":""// 开始执行的时间,单位毫秒

              "finish_time":"" // 执行完成的时间,单位毫秒

              "name": "用例名",

              "description":"用例描述",

              "result": "执行结果", //success, failure, error, skip, unexpected_success, expected_failure

              "message": "错误消息"

          }]

      }

  }

}


返回的HTTP status code

状态码说明
200成功
400请求结构错误
403token 无效,无权限
500服务器错误
801参数错误

返回JSON

参数名值类型取值范围默认值取值例子说明
pipelineobject参考顶端 pipeline 模型

最后这里给大家免费分享一份Python学习资料,包含了视频、源码、课件,希望能够帮助到那些不满现状,想提示自己却又没用方向的朋友,也可以和我一起来交流呀!

编辑资料、学习路线图、源代码、软件安装包等!【点击这里】领取!

学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

 

实战案例:

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

 

Python+Selenium安装及环境配置手把手教会你 1. 1,组件✨Selenium IDE,Firefox浏览器的一个插件,提供简单的脚本录制、编辑与回放功能;Selenium Remote Control (RC),是selenium 1 提供的组件,包含:SeleniumServer(用于提供自动化测试服务)、Selenium Client(用于执行脚本);Selenium Grid,用于对测试用例集做分布式处理(并行),现已集成到selenium server中; 阅读详情

相关推荐

最全Python+Selenium环境搭建教程-你绝对想不到有这么简单!

在华为工作了10年的大佬出的Web自动化测试教程,华为现用技术教程!_哔哩哔哩_bilibili在华为工作了10年的大佬出的Web自动化测试教程,华为现用技术教程!共计16条视频,包括:1. 【web自动化】主流Web自动化测试技术对比、2. 【web自动化】Selenium自动化测试环境一键搭建、3. 【web自动化】Selenium八大定位策略详解等,UP主更多精彩视频,请关注UP账号。Selenium是目前最流行的web自动化测试工具,也常用于网络爬虫,已经更新到3以上的版本。

m0_73409141的博客 6380

Python_Selenium自动化测试详细教程

Python Selenium是Selenium WebDriver的Python语言封装,为Python开发者提供了一个方便易用的自动化测试库。它支持多种浏览器(如Chrome、Firefox、Edge等)以及多个操作系统,可以模拟用户在浏览器中的各种行为,包括打开网页、查找元素、输入文本、点击链接、提交表单、上传文件等。

檬柠wan 1万+

CentOS7下Graylog3.0高效日志管理:从零搭建到实战应用

本文详细介绍了在CentOS7操作系统上从零开始搭建Graylog3.0日志管理平台的完整过程。内容涵盖Java环境准备、MongoDB与Elasticsearch依赖安装、Graylog Server核心配置,并实战演示了通过Graylog Sidecar集中管理日志采集器以及配置邮件告警功能,为中小型团队提供了一个比ELK更轻量、易维护的一体化日志解决方案。

weixin_29207149的博客 86

Python+selenium自动化测试实战项目(全面,完整,详细)

项目名称:**公司电子零售会员系统项目目的:实现电子零售会员系统项目自动化测试执行项目版本:v1.0。

crhnb的博客 6800

手把手教你用示波器实测CAN总线波形:快速区分高速、低速及常见故障

本文详细介绍了如何使用示波器实测CAN总线波形,快速区分高速CAN总线和低速CAN总线,并诊断常见故障。通过实战案例和波形分析,帮助工程师掌握CAN总线信号特征,提升故障排查效率,适用于汽车电子和工业控制领域。

weixin_33217202的博客 411

从华为杯建模到论文录用:我的Biomedical Signal Processing and Control投稿全记录(含Latex模板与审稿人推荐技巧)

本文详细记录了作者从华为杯数学建模竞赛到Biomedical Signal Processing and Control期刊投稿的全过程,分享了如何将竞赛成果转化为学术论文的实用技巧,包括LaTeX排版中的常见陷阱与解决方案,以及审稿人推荐策略。特别提供了针对Elsevier模板的优化建议和高效回复审稿意见的方法,适合生物医学信号处理领域的研究者参考。

weixin_42549037的博客 454

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

2025最新Selenium教程(Python 网页自动化测试脚本),selenium自动化测试速成一,安装Python.安装后点击开始菜单,在菜单最上面能找到IDLE.IDLE是python自带的shell, 点击打开, 即可开始编写python脚本了.二,安装selenium上面python已安装完成,接下来安装selenium.安装selenium之前需要安装必要工具.安装后,(比如zip包形式安装),进入解压的目录,在命令行执行如下命令即可安装.再然后安装pip。

xt1989288的博客 815

Ubuntu 22.04 LTS下Xenomai 3.3实时内核配置全攻略(附常见错误排查)

本文详细介绍了在Ubuntu 22.04 LTS系统上配置Xenomai 3.3实时内核的完整流程,包括环境准备、内核补丁应用、编译优化及常见错误排查。特别针对工业自动化和机器人控制场景,提供了性能优化建议和故障解决方案,帮助开发者实现毫秒级精度的实时任务处理。

weixin_29268385的博客 464

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

最近在学web自动化,记录一下学习过程。此处我选用python3.6+selenium3.0,均用最新版本,以适应未来需求。环境:windows10,64位一、安装pythonpython官方下载地址:https://www.python.org/downloads/进入页面就有两个版本的下载选择,2.x版本和3.x版本,或者根据系统选择对应版本。点击Windows,跳转到Windows版本页面:...

weixin_30341121的博客 446

R语言生存分析之限制性立方样条分析:样条回归、和多项式回归有什么不同?是否存在非线性关系、限制性立方样条cox回归模型

R语言生存分析之限制性立方样条分析:样条回归、和多项式回归有什么不同?是否存在非线性关系、限制性立方样条cox回归模型

statistics+insight+vista+power 634

基于STM32L4XX、HAL库的CH182H1以太网收发器(PHY)驱动程序设计

define PHY_REG_PHYSCR 0x12 // PHY特殊控制寄存器。#define PHY_REG_PHYSTS 0x10 // PHY状态寄存器。#define PHY_REG_PHYIDR 0x11 // PHY标识寄存器。#define PHY_REG_ID1 0x02 // PHY标识符1。#define PHY_REG_ID2 0x03 // PHY标识符2。

zhusl6688的博客 406

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

原作者:未知的向往原出处:优快云原文链接:https://blog.youkuaiyun.com/nanalinlinlin/article/details/54692114版权声明:本文为博主原创文章,转载请附上博文链接python3.6+selenium3.0环境:windows10,64位一、安装pythonpython官方下载地址:https://www.python.org/downloads/进...

weixin_39810196的博客 124

黑猫带你学UFS协议第17篇:UFS安全模式详解(Secure Mode)

本文详细介绍了UFS协议中的安全模式,包括Erase, Discard, Purge和Wipe Device操作。Erase用于永久删除数据并确保无法恢复;Discard不保证数据清除;Purge类似于Sanitize,清除内部未映射的物理块数据;Wipe Device则是格式化设备。这些操作涉及逻辑单元、擦除单位、相关寄存器配置等,确保数据安全。" 126036669,12409270,MySQL 8.0 开窗函数详解,"['数据库理论', 'SQL']

黑猫奥利奥的博客 2560

python自动化测试脚本怎么编写_使用Python+selenium实现第一个自动化测试脚本

最近在学web自动化,记录一下学习过程。此处我选用python3.6+selenium3.0,均用最新版本,以适应未来需求。环境:windows10,64位一、安装pythonpython官方下载地址:https://www.python.org/downloads/进入页面就有两个版本的下载选择,2.x版本和3.x版本,或者根据系统选择对应版本。点击Windows,跳转到Windows版本页面:...

weixin_39640845的博客 827

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

最近在学web自动化,记录一下学习过程。此处我选用python3.6+selenium3.0,均用最新版本,以适应未来需求。环境:windows10,64位一、安装python进入页面就有两个版本的下载选择,2.x版本和3.x版本,或者根据系统选择对应版本。点击Windows,跳转到Windows版本页面:点选Python3.6.0版本,进入3.6版本页面,拉到页面下方,找到files选择64位o...

weixin_39760650的博客 419

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

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

原作者:未知的向往原出处:优快云原文链接:https://blog.youkuaiyun.com/nanalinlinlin/article/details/54692114版权声明:本文为博主原创文章,转载请附上博文链接python3.6+selenium3.0环境:windows10,64位一、安装pythonpython官方下载地址:https://www.python.org/downloads/进...

weixin_35564059的博客 783

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

保存为test1.py,通过快捷键F5运行脚本,可看到脚本启动Firefox浏览器进入百度页,输入“selenium” 点击搜索按钮,最后关闭浏览器的过程。​勾上第一个选项,选择安装路径后(注意安装路径不要包含中文,否则后面安装工具可能会报错),点击install就开始安装了。​安装完成,点击close,python安装完毕~ 前面已勾选了add path,所以无需设置任何系统变量,即可使用。执行 python setup.py install 即可安装,注意解压路径不要包含中文,否则安装会报错。

dq565的博客 1226
上一篇: Python爬虫入门实战(详细步骤)
下一篇: Python及其基础语法(超详细讲解)
Python_trys
博客等级 码龄2年 4375粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值