当前位置: 首页 > news >正文

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 页头

如果页面的路径比较简单&#xff0c;推荐使用页头组件而非面包屑组件。 1.如何使用&#xff1f; <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 项目文件&#xff08;.pro&#xff09;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入门使用两个问题

项目中横向一排元素&#xff0c;竖向一排元素&#xff0c;可以使用UIStackView。UIStackView的原理不做介绍&#xff0c;这里主要讲两个初次使用容易出现的两个问题。 首先创建一个stackview -(UIStackView*)titleStackView{if(_titleStackView nil){_titleStackView [UISta…...

【Sentinel】Sentinel与gateway的限流算法

文章目录 1、Sentinel与Hystrix的区别2、限流算法3、限流算法对比4、Sentinel限流与Gateway限流 1、Sentinel与Hystrix的区别 线程隔离有两种方式实现&#xff1a; 线程池隔离&#xff08;Hystrix默认采用&#xff09;信号量隔离&#xff08;Sentinel默认采用&#xff09; 服…...

python实现对excel表中的某列数据进行排序

如下需要对webCms中的B列数据进行升序排序&#xff0c;且不能影响到其他列、工作表中的数据和格式。 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系统 通过关键特征&#xff0c;识别出目标的CMS系统&#xff0c;服务器&#xff0c;开发语言&#xff0c;操作系统&#xff0c;CDN&#xff0c;WAF的类别版本等等 1.识别对象 1.CMS信息&#xff1a;比如Discuz,织梦&#xff0c;帝国CMS&#xff0…...

STL- 常用算法

概述: 算法主要是由头文件<algorithm> <functional> <numeric>组成。 <algorithm>是所有STL头文件中最大的一个&#xff0c;范围涉及到比较、 交换、查找、遍历操作、复制、修改等等 <numeric>体积很小&#xff0c;只包括几个在序列上面进行简…...

苹果铃声怎么设置?3招教你设置个性化铃声!

苹果手机因其颜值、性能与生态吸引了一大批粉丝用户。在拿到新手机后&#xff0c;大家第一时间就是给手机设置好听的铃声。那么&#xff0c;苹果铃声怎么设置呢&#xff1f;手机铃声能设置成自己喜欢的歌曲吗&#xff1f;当然可以了&#xff01;本文将给大家介绍3种轻松设置苹果…...

LRTimelapse 6 for Mac(延时摄影视频制作软件)

LRTimelapse 是一款适用于macOS 系统的延时摄影视频制作软件&#xff0c;可以帮助用户创建高质量的延时摄影视频。该软件提供了直观的界面和丰富的功能&#xff0c;支持多种时间轴摄影工具和文件格式&#xff0c;并具有高度的可定制性和扩展性。 LRTimelapse 的主要特点如下&am…...

数据结构和算法(4):栈与队列

栈 ADT 及实现 栈&#xff08;stack&#xff09;是存放数据对象的一种特殊容器&#xff0c;其中的数据元素按线性的逻辑次序排列&#xff0c;故也可定义首、末元素。 尽管栈结构也支持对象的插入和删除操作&#xff0c;但其操作的范围仅限于栈的某一特定端。 也就是说&#xf…...

pdf怎么转换成dwg格式?简单转换方法分享

当我们需要在CAD中编辑PDF文件中的向量图形时&#xff0c;将PDF转换成DWG格式是一个非常好的选择。因为PDF是一种非常流行的文档格式&#xff0c;很多时候我们会接收到PDF文件&#xff0c;但是PDF文件中的向量图形无法直接在CAD中编辑。而将PDF转换成DWG格式后&#xff0c;就可…...

uniapp使用H5实现预览pdf文件

下载后把压缩包解压到自己的项目的static文件夹下的pdf文件下&#xff0c;如图 新建一个文件名为filePreview.vue <template><view><web-view :src"allUrl"></web-view></view> </template><script>export default {dat…...

Studio 3T for MongoDB的介绍及语法简单介绍

用法介绍 Studio 3T是一款用于MongoDB数据库管理和开发的图形化工具&#xff0c;它提供了许多功能来简化MongoDB的操作和开发过程。以下是一些常见的Studio 3T用法&#xff1a; 连接到MongoDB服务器&#xff1a; 打开Studio 3T并创建一个新连接配置。输入MongoDB服务器的主机名…...

MySQL数据库——存储引擎(1)-MySQL体系结构、存储引擎简介

目录 MySQL体系结构 连接层 服务层 引擎层 存储层 存储引擎简介 概念 语句 演示 下面开始学习进阶篇的第一个内容——存储引擎 分为四点学习&#xff1a; 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全景分割

论文&#xff1a;https://arxiv.org/abs/2303.14651 代码&#xff1a;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&#xff0c;就是互联网控制报文协议。 ICMP 报文是封装在 IP 包里面的。因为传输指令的时候&#xff0c;肯定需要源地址和目标地址。它本身非常简单。 ICMP 报文有很多的类型&#xff0c;不同的类型…...

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中打造极简时间轴&#xff1a;告别繁琐拖拽&#xff0c;拥抱文本化项目管理 在数字时代&#xff0c;时间管理和项目规划已经成为每个高效能人士的必修课。无论是开发者跟踪项目里程碑&#xff0c;学生规划学习路径&#xff0c;还是个人记录生活轨迹&#xf…...

基于电容触控与伺服电机的互动雪人制作:嵌入式编程与物理计算实践

1. 项目概述与核心思路又到了可以折腾点有趣小玩意儿的季节。这次我想分享一个特别适合在室内营造节日气氛&#xff0c;又能把嵌入式编程和手工制作结合起来的项目&#xff1a;一个会跳舞的互动雪人。这个项目的核心很简单——你触摸雪人的帽子&#xff0c;它就会随着音乐扭动身…...

提供充电桩运维托管的服务商:选择标准与服务内容解析

一、引言据中国电动汽车充电基础设施促进联盟&#xff08;EVCIPA&#xff09;数据显示&#xff0c;截截至2026年2月底&#xff0c;我国电动汽车充电基础设施&#xff08;枪&#xff09;总数达到2101.0万个&#xff0c;同比增长47.8%。其中&#xff0c;公共充电设施&#xff08;…...

苏州晟雅泰电子的主营业务及应用领域和优势产品有哪些

苏州晟雅泰电子有限公司&#xff08;SUNTEC&#xff09;的主营业务是研发生产和代理销售网络变压器等磁性元器件。其核心产品和技术广泛应用于网络通讯、安防监控和服务器/数据中心等领域。&#x1f511; 主营业务与核心产品该公司深耕磁性元器件领域&#xff0c;具体产品和服务…...

基于CircuitPython与PyPortal的交互式冒险游戏开发实战

1. 项目概述与核心价值如果你对嵌入式开发感兴趣&#xff0c;但又觉得从点灯、读传感器开始有些枯燥&#xff0c;或者你是一位创客、教育者&#xff0c;想找一个能融合编程、故事创作和硬件交互的趣味项目&#xff0c;那么基于CircuitPython和PyPortal的交互式冒险游戏开发&…...

别再死记硬背公式了!用MATLAB besselj函数5分钟搞定贝塞尔函数可视化

用MATLAB可视化贝塞尔函数&#xff1a;从数学恐惧到图形直觉的5分钟蜕变 当《数学物理方法》教材上那些密密麻麻的积分符号和无穷级数开始在你眼前跳舞&#xff0c;当教授在黑板上推导贝塞尔方程时粉笔灰与数学焦虑一起飞扬——是时候让MATLAB成为你理解这些特殊函数的"视…...

别再只堆叠4层了!用DenseGCN构建超深图网络,点云分割mIoU提升实战

突破GCN深度瓶颈&#xff1a;DenseGCN在点云分割中的实战优化指南 传统图卷积网络&#xff08;GCN&#xff09;通常被限制在3-4层的浅层架构中&#xff0c;这种深度限制严重制约了其在点云分割等复杂任务中的表现。本文将揭示如何通过密集连接&#xff08;Dense Connections&am…...

NumPy 使用指南

一、为什么选择 NumPy 而非 Python 列表Python 原生列表&#xff08;list&#xff09;虽能存储数组形式的数据&#xff0c;但存在显著性能缺陷&#xff1a;内存效率低&#xff1a;列表存储的是对象指针&#xff0c;即使存储简单数值&#xff08;如 [0,1,2]&#xff09;&#xf…...

端口聚合(Eth-Trunk)实验总结 —— 让两根网线“抱团”干活

企业场景&#xff1a;公司两栋楼之间只有两根网线相连&#xff0c;既要带宽加倍&#xff0c;又要一根线断了业务不中断。端口聚合就是让两根线“手拉手”变成一条逻辑链路&#xff0c;协同工作。&#x1f4cc; 实验拓扑&#xff08;两台交换机&#xff0c;两根网线互联&#xf…...

三步快速解锁网盘高速下载:LinkSwift直链解析终极指南

三步快速解锁网盘高速下载&#xff1a;LinkSwift直链解析终极指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...