(web自动化测试+python)1

news2024/11/9 6:03:28

一.UI自动化测试介绍

1.测试化理论

UI就是指的是用户接口,指的是用户与电脑的接口,是用户界面

UI不仅仅指的是web,还可以指代app

我们为什么要进行自动化?

大量版本的回归 当新的功能出现,复测之间的--我们叫做回归(新代码出现需要对旧代码进行复测,检查新代码是否对旧代码有所改动,但是这样的耗时比较大,因此就出现了UI自动化)大大提高了工作效率

使用UI自动化需要前置条件,

什么样的项目适合做自动化?

(1)项目需要回归测试...

自动化永远只能发现固定的bug

selenium:用来在页面中查找元素,操作元素

2.认识web自动化测试工具--selenium

 自动化测试属于功能测试,是对程序的功能进行测试

开源(代码在本地,可以随便修改,添加)

跨平台(写出的脚本既可以在Linux运行,也可以在Windows运行,也可以在Mac中运行)

支持多种浏览器(火狐,ie,谷歌等等)

支持多种语言(python java)

插件录制脚本,ide--录制功能,可以导出脚本,复杂的场景不好搞,不好维护

grid(分布式服务,最短的时间执行完所有用例)

webdriver(通过浏览器的驱动来去定位元素,操作页面)--核心

3.环境搭建

核心:调用驱动的方法

4.八种常用元素定位方法

1.id定位

通过元素的id属性来定位元素,前提是要有id属性

什么是元素定位:通过代码调用方法查找元素

id    name   class    tag_name   link_text   partical_link_text   xpath   css 

打开浏览器--实例化浏览器对象

此时,成功打开

from asyncio import sleep

from selenium import webdriver
driver = webdriver.Chrome()
#打开谷歌浏览器
driver.get("https://blog.csdn.net/2301_79144798/article/details/142173933")
#关闭浏览器
sleep(3)
driver.quit()

步骤有四步

打开f12就可以发现有id

对于练习:

2.name和classname定位

3.tag_name定位

5.查找一组元素的方法

 加s--返回的是列表

要将每个值正确的填入:

6.xpath

 

元素定位(xpath和css)---没有id name class时

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

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

相关文章

《Diffusion Models Without Attention》CVPR2024

摘要 这篇论文探讨了在高保真图像生成领域,去噪扩散概率模型(Denoising Diffusion Probabilistic Models, DDPMs)的重要性。尽管DDPMs在捕捉复杂视觉分布方面表现出色,但在高分辨率图像生成上面临显著的计算挑战。现有的方法&…

动物目标检测——基于YOLOv5和树莓派4B平台

目标检测在计算机视觉领域中具有重要意义。YOLOv5(You Only Look One-level)是目标检测算法中的一种代表性方法,以其高效性和准确性备受关注,并且在各种目标检测任务中都表现出卓越的性能。本文将详细介绍如何在性能更强的计算机上…

java实习生第一次被分配需求——完成需求的大概流程

一、分配需求后第一步,首先是把项目跑起来 在我进入公司一两个星期之后(基本熟悉了公司的框架),就被我所在的开发小组的某个大哥分派了一个需求,然后他给我发了一个git地址,以及一个git的分支(…

知名专家曹启富主任:冠心病低龄化?早预防早受益,守护心脏从日常做起

冠心病,这一曾被视为中老年疾病的代表,如今正悄然向更年轻的人群逼近。冠心病多发生于40岁以上的年龄段,但近年来,其发病低龄化的趋势日益明显,根据数据显示,我国城市人群15岁以及15岁以上的人口&#xff0…

STM32G474之TAMPALRM输出

TAMPALRM输出源是指“RTC唤醒”、“RTC报警A”和“RTC报警B”输出,可以配置从RTC_OU1(PC13)或RTC_OUT2(PB2)输出,而OUT2EN用来决定从哪个引脚输出。 1、TAMPALRM输出原理见下表: 若不看CALIB输出,可以简化如下表: 2、 …

【API Testing and Development with Postman 2nd_001】关于本书

译者按 今天又淘到一本介绍 Postman 的宝藏级小册子,非常适合想进一步了解 API 接口测试的朋友们。本书最大的特点就是手把手教学。想当年第 1 版问世时,初出茅庐的我随便拣了书中一两招,就能轻松搞定工作中五花八门的 API 疑难杂症。只是当时…

监听键盘事件

问题:点击输入框弹出键盘遮挡文字 需求:点击输入框键盘弹起,点击别处键盘回收,输入框回到原来状态, 解决办法: 1.采用占位的思想(隐藏),文本框控制采用焦点控制&#…

多态的概念

多态 所谓的多态其实就是多种形态,它又被分为编译时多态(静态多态) 和 运行时多态(动态多态)。 静态的多态其实就是之前的模版和函数重载,今天我们主要讲动态的多态。所谓的动态多态其实就是相同的函数,完成不同的功能。 这就实现了明明都是…

C#搭建WebApi服务

1,OWIN的介绍 OWIN 的全称是 "Open Web Interface for .NET", OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一套标准的接口, 其目的是为了实现服务器与应用之间的解耦,使得便携式 .NET Web 应用以及跨平台的愿望…

MongoDB事务机制

事务机制 1.事务概念 在对数据的操作的过程中,涉及到一连串的操作,这些操作如果失败,会导致我们的数据部分变化了,部分没变化。这个过程就好比如你去吃早餐,你点完餐了,并且吃完早餐了,没付钱你…

ES6标准---【五】【看这一篇就够了!!!】

目录 ES6以往文章 箭头函数的基本用法 箭头函数的用处 简化回调函数 rest参数与箭头函数结合 箭头函数使用注意点 this指向的问题 其它不存在的变量 不能使用call()、apply()、bind()方法改变this的指向 箭头函数不适用场合 定义对象时,对象方法内部包含…

信创环境下源代码防泄露解决方案

在当今数字化时代,信息安全已成为企业生存与发展的基石,尤其是在信息技术应用创新(信创)环境下,数据保护更是被提升至前所未有的高度。SDC沙盒防泄露系统以其独特的技术架构和卓越的安全性能,在信创环境中构…

ES6标准---【六】【学习ES6标准看这一篇就够了!!!】

目录 以往ES6文章 前言 对象属性的简洁表示法 一个实际例子 简介写法在打印对象时也很有用 注意 对象属性名表达式 用表达式做属性名 用表达式定义方法名 注意 对象方法的name属性 对象属性的可枚举性和遍历 可枚举性 属性的遍历 属性比那里次序规则 super关键…

图片生成PPT!首推这款一站式AI制作PPT工具!

在当今快节奏的工作中,制作一份精美的PPT演示文稿往往是一项费时费力的工作,特别是当我们需要将大量的图片转化为PPT时,传统的方法显得尤为繁琐。幸运的是,随着AI人工智能技术的飞速发展,一种更便捷地将图片转为ppt的解…

计算机毕业设计 《计算机基础》网上考试系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

Java之线程篇三

​​​​​​​ 目录 线程状态 观察线程的所有状态 线程状态及其描述 线程状态转换 代码示例1 代码示例2 线程安全 概念 线程不安全的代码示例 线程不安全的原因 线程安全的代码示例-加锁 synchronized关键字 synchronized的特性 小结 形成死锁的四个必要条件 …

Java设计模式之命令模式介绍和案例示范

一、命令模式简介 命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为一个对象,从而使你可以用不同的请求对客户端进行参数化、对请求排队或记录日志,以及支持可撤销的操作。命令模式的核心思想是将发出请…

kvm 虚拟机命令行虚拟机操作、制作快照和恢复快照以及工作常用总结

文章目录 kvm 虚拟机命令行虚拟机操作、制作快照和恢复快照一、kvm 虚拟机命令行虚拟机操作(创建和删除)查看虚拟机virt-install创建一个虚拟机关闭虚拟机重启虚拟机销毁虚拟机 二、kvm 制作快照和恢复快照**创建快照**工作常见问题创建快照报错::intern…

超详细、史上最全pytorch安装教程

一、anaconda安装 1.下载 Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirrorhttps://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 这里划到最下面选择5.3.1最新版: 2.下载完成后安装 点击next 点击 I agree 选择All Us…

ignav的INS的状态更新

ignav的代码 static void updstat(const insopt_t *opt,insstate_t *ins,const double dt,const double *x0,const double *P0,double *phi,double *P,double *x,double *Q) {opt->exprn?getprn(ins,opt,dt,Q): getQ(opt,dt,Q); // //phi 状态转移矩阵 ,离散化…