Java测试(10)--- selenium
1.定位一组元素
(1)如何打开本地的HTML页面
拼成一个URL :file: + /// + 文件的绝对路径
import os os.path.abspath(文件的绝对路径)
(2)先定位出同一类元素(tag name,name,class name等),然后根据需要定位的元素的特征(type)去甄别出要定位的具体元素进行操作。
2.多层框架的定位
iframe--->框架里面的嵌套框架
解决不同层框架上的页面的元素的定位
driver.switch_to.frame("f1")
(1)如果要定位一个层级框架中的元素,必须先调到这个框架层级,才可以定位;
(2)如果要定位某一个层级,必须从默认页面跳转;
driver.switch_to.default_content()
default context-->f1 正确;
default context-->f2 错误;
f1-->f2 正确;
f2-->f1 错误;

3.层级定位
4.下拉框的选择
(1)直接用xpath定位
(2)先定位出一组元素(tag name等),然后根据元素的属性进新房过滤筛选,再进行具体操作
(3)先定位出一组元素(tag name等),通过数组下标的方式定位
5.alert框的处理
- 定位弹出框/获得弹出框的操作句柄-->alert = driver.switch_to.alert
- 关闭alert-->alert.accept()
在alert弹框输入相应信息
- 先获得弹出框的操作句柄-->alert = driver.switch_to.alert
- 再用send_keys去输入信息-->alert.send_keys("夏天好!")
6.div块的处理
适用于页面复杂,元素非常多,没有id,并且name,或i这tag name 重复
(1)首先要定位元素所在的div模块
(2)在定位到的div模块的基础上去精确寻找需要定位的元素
7.上传文件
定位上传按钮
send_keys(需要上传文件的绝对路径+文件名字)
driver.find_element_by_name("file").send_keys("C:\\Users\\18591\\Pictures/test.png")
8.为什么有些第三方网站的页面元素无法定位
//输入账户名
driver.find_element_by_id("auto-id-1655608724515").send_keys("18591231900")
//输入密码
driver.find_element_by_id("auto-id-1655608984198").send_keys("huawei89")
selenium3
1>unittest框架
UI功能单元测试
(1)测试固件(框架里面的固定的方法)
setup方法,测试环境和数据的准备工作
tearDown方法,做测试用例执行完成之后的清理工作
(2)测试用例
一个用例是一个方法 def名字以test_开头
(3)测试套件
把测试用例组织到一起进行一个整体的测试
必须以继承的方式来使用
2>测试套件
(1)unittest.TestSuite
addTest(脚本名称.类名称.方法名)
makesuit unittest.makeSuite(脚本名称.类名称)-->可以把一个类中所有的测试方法添加到测试套件中
TestLoader
unittest.TestLoader().loadTestFromTestCase-->把一个类中所有的测试方法创建成一个测试套件返回
(2)把一个文件夹下所有测试脚本的测试用例都执行一遍
discover
unitttest.defaultTestLoader.discover("../src20211230",pattern="testbaidu*.py",top_level_dir=None)
../src20211230--->文件夹;后面的表示要运行测试用例所在的文件的名称
相关文章:
Java测试(10)--- selenium
1.定位一组元素 (1)如何打开本地的HTML页面 拼成一个URL :file: /// 文件的绝对路径 import os os.path.abspath(文件的绝对路径) (2)先定位出同一类元素(tag name,name&…...
【文末送书】Matlab科学计算
欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…...
ElementUI浅尝辄止30:PageHeader 页头
如果页面的路径比较简单,推荐使用页头组件而非面包屑组件。 1.如何使用? <el-page-header back"goBack" content"详情页面"> </el-page-header><script>export default {methods: {goBack() {console.log(go bac…...
[Qt]基础数据类型和信号槽
文章目录 1. Qt基本结构1.1 Qt本有项目1.1.1 项目文件(.pro)1.1.2 main.cpp1.1.3 mainwindow.ui1.1.4 mainwindow.h1.1.5 mainwindow.cpp 1.2 Qt中的窗口类1.2.1基础窗口类1.2.2 窗口的显示 1.3 内存回收 2. Qt中的基础数据类型2.1 基础类型2.2 log输出2…...
UIStackView入门使用两个问题
项目中横向一排元素,竖向一排元素,可以使用UIStackView。UIStackView的原理不做介绍,这里主要讲两个初次使用容易出现的两个问题。 首先创建一个stackview -(UIStackView*)titleStackView{if(_titleStackView nil){_titleStackView [UISta…...
【Sentinel】Sentinel与gateway的限流算法
文章目录 1、Sentinel与Hystrix的区别2、限流算法3、限流算法对比4、Sentinel限流与Gateway限流 1、Sentinel与Hystrix的区别 线程隔离有两种方式实现: 线程池隔离(Hystrix默认采用)信号量隔离(Sentinel默认采用) 服…...
python实现对excel表中的某列数据进行排序
如下需要对webCms中的B列数据进行升序排序,且不能影响到其他列、工作表中的数据和格式。 import pandas as pd import openpyxl from openpyxl.utils.dataframe import dataframe_to_rows# 读取 Excel 文件 file_path 1.xlsx sheet_name webCms# 读取 Excel 文件并…...
CMS指纹识别
一.什么是指纹识别 常见cms系统 通过关键特征,识别出目标的CMS系统,服务器,开发语言,操作系统,CDN,WAF的类别版本等等 1.识别对象 1.CMS信息:比如Discuz,织梦,帝国CMS࿰…...
STL- 常用算法
概述: 算法主要是由头文件<algorithm> <functional> <numeric>组成。 <algorithm>是所有STL头文件中最大的一个,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等 <numeric>体积很小,只包括几个在序列上面进行简…...
苹果铃声怎么设置?3招教你设置个性化铃声!
苹果手机因其颜值、性能与生态吸引了一大批粉丝用户。在拿到新手机后,大家第一时间就是给手机设置好听的铃声。那么,苹果铃声怎么设置呢?手机铃声能设置成自己喜欢的歌曲吗?当然可以了!本文将给大家介绍3种轻松设置苹果…...
LRTimelapse 6 for Mac(延时摄影视频制作软件)
LRTimelapse 是一款适用于macOS 系统的延时摄影视频制作软件,可以帮助用户创建高质量的延时摄影视频。该软件提供了直观的界面和丰富的功能,支持多种时间轴摄影工具和文件格式,并具有高度的可定制性和扩展性。 LRTimelapse 的主要特点如下&am…...
数据结构和算法(4):栈与队列
栈 ADT 及实现 栈(stack)是存放数据对象的一种特殊容器,其中的数据元素按线性的逻辑次序排列,故也可定义首、末元素。 尽管栈结构也支持对象的插入和删除操作,但其操作的范围仅限于栈的某一特定端。 也就是说…...
pdf怎么转换成dwg格式?简单转换方法分享
当我们需要在CAD中编辑PDF文件中的向量图形时,将PDF转换成DWG格式是一个非常好的选择。因为PDF是一种非常流行的文档格式,很多时候我们会接收到PDF文件,但是PDF文件中的向量图形无法直接在CAD中编辑。而将PDF转换成DWG格式后,就可…...
uniapp使用H5实现预览pdf文件
下载后把压缩包解压到自己的项目的static文件夹下的pdf文件下,如图 新建一个文件名为filePreview.vue <template><view><web-view :src"allUrl"></web-view></view> </template><script>export default {dat…...
Studio 3T for MongoDB的介绍及语法简单介绍
用法介绍 Studio 3T是一款用于MongoDB数据库管理和开发的图形化工具,它提供了许多功能来简化MongoDB的操作和开发过程。以下是一些常见的Studio 3T用法: 连接到MongoDB服务器: 打开Studio 3T并创建一个新连接配置。输入MongoDB服务器的主机名…...
MySQL数据库——存储引擎(1)-MySQL体系结构、存储引擎简介
目录 MySQL体系结构 连接层 服务层 引擎层 存储层 存储引擎简介 概念 语句 演示 下面开始学习进阶篇的第一个内容——存储引擎 分为四点学习: MySQL体系结构存储引擎简介存储引擎特点存储引擎选择 MySQL体系结构 连接层 最上层是一些客户端和链接服务&am…...
211. 添加与搜索单词 - 数据结构设计
211. 添加与搜索单词 - 数据结构设计 class WordDictionary { public:struct Node{Node *node[26];bool is_end;Node(){is_endfalse;for(int i0;i< 26;i){node[i]NULL;}}};Node *root;WordDictionary() {root new Node();}void addWord(string word) {auto p root;for(aut…...
【深度学习】You Only Segment Once: Towards Real-Time Panoptic Segmentation,YOSO全景分割
论文:https://arxiv.org/abs/2303.14651 代码:https://github.com/hujiecpp/YOSO 文章目录 Abstract1. Introduction2. Related Work3. Method3.1. Task Formulation3.2. Feature Pyramid Aggregator3.3. Separable Dynamic Decoder 4. Experiments4.1. …...
ping与Traceroute是如何工作的
ping 是基于 ICMP 协议工作的。ICMP 全称 Internet Control Message Protocol,就是互联网控制报文协议。 ICMP 报文是封装在 IP 包里面的。因为传输指令的时候,肯定需要源地址和目标地址。它本身非常简单。 ICMP 报文有很多的类型,不同的类型…...
CentOS Python环境搭建
安装依赖 yum install -y libffi-devel wget gcc make zlib-devel openssl openssl-devel ncurses-devel openldap-devel gettext bzip2-devel xz-devel下载安装包 wget "https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tar.xz" 编译安装 # 3.1、解压安装包…...
别再手动画甘特图了!用VS Code插件MarkWhen,写几行文本就能生成炫酷时间轴
用MarkWhen在VS Code中打造极简时间轴:告别繁琐拖拽,拥抱文本化项目管理 在数字时代,时间管理和项目规划已经成为每个高效能人士的必修课。无论是开发者跟踪项目里程碑,学生规划学习路径,还是个人记录生活轨迹…...
基于电容触控与伺服电机的互动雪人制作:嵌入式编程与物理计算实践
1. 项目概述与核心思路又到了可以折腾点有趣小玩意儿的季节。这次我想分享一个特别适合在室内营造节日气氛,又能把嵌入式编程和手工制作结合起来的项目:一个会跳舞的互动雪人。这个项目的核心很简单——你触摸雪人的帽子,它就会随着音乐扭动身…...
提供充电桩运维托管的服务商:选择标准与服务内容解析
一、引言据中国电动汽车充电基础设施促进联盟(EVCIPA)数据显示,截截至2026年2月底,我国电动汽车充电基础设施(枪)总数达到2101.0万个,同比增长47.8%。其中,公共充电设施(…...
苏州晟雅泰电子的主营业务及应用领域和优势产品有哪些
苏州晟雅泰电子有限公司(SUNTEC)的主营业务是研发生产和代理销售网络变压器等磁性元器件。其核心产品和技术广泛应用于网络通讯、安防监控和服务器/数据中心等领域。🔑 主营业务与核心产品该公司深耕磁性元器件领域,具体产品和服务…...
基于CircuitPython与PyPortal的交互式冒险游戏开发实战
1. 项目概述与核心价值如果你对嵌入式开发感兴趣,但又觉得从点灯、读传感器开始有些枯燥,或者你是一位创客、教育者,想找一个能融合编程、故事创作和硬件交互的趣味项目,那么基于CircuitPython和PyPortal的交互式冒险游戏开发&…...
别再死记硬背公式了!用MATLAB besselj函数5分钟搞定贝塞尔函数可视化
用MATLAB可视化贝塞尔函数:从数学恐惧到图形直觉的5分钟蜕变 当《数学物理方法》教材上那些密密麻麻的积分符号和无穷级数开始在你眼前跳舞,当教授在黑板上推导贝塞尔方程时粉笔灰与数学焦虑一起飞扬——是时候让MATLAB成为你理解这些特殊函数的"视…...
别再只堆叠4层了!用DenseGCN构建超深图网络,点云分割mIoU提升实战
突破GCN深度瓶颈:DenseGCN在点云分割中的实战优化指南 传统图卷积网络(GCN)通常被限制在3-4层的浅层架构中,这种深度限制严重制约了其在点云分割等复杂任务中的表现。本文将揭示如何通过密集连接(Dense Connections&am…...
NumPy 使用指南
一、为什么选择 NumPy 而非 Python 列表Python 原生列表(list)虽能存储数组形式的数据,但存在显著性能缺陷:内存效率低:列表存储的是对象指针,即使存储简单数值(如 [0,1,2])…...
端口聚合(Eth-Trunk)实验总结 —— 让两根网线“抱团”干活
企业场景:公司两栋楼之间只有两根网线相连,既要带宽加倍,又要一根线断了业务不中断。端口聚合就是让两根线“手拉手”变成一条逻辑链路,协同工作。📌 实验拓扑(两台交换机,两根网线互联…...
三步快速解锁网盘高速下载:LinkSwift直链解析终极指南
三步快速解锁网盘高速下载:LinkSwift直链解析终极指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...
