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

POM设计模式思路,详解POM:概述与介绍,POM思路梳理+代码示例(全)

概述

在UI自动化测试中,POM模式是一种设计思路,它的核心思想是方法的封装。它将方法类和页面元素进行分离,增强了代码的可维护性。值得注意的是,这种分层的设计模式,最好也是从线性代码开始,逐步将代码进行升级,最后形成以POM设计思路为核心的自动化测试框架。

思路梳理

版本升级思路

  1. V1(不使用任何设计模式和单元测试框架)
  2. V2(使用PyTest管理用例)
  3. V3(使用方法封装的思想,对代码进行优化。)
  4. V4(引入POM设计思路,也就是对象层、操作层、业务层,将方法类和页面元素进行分离)

编写思路梳理

技术架构:python+selenium+pytest+allure

思路和步骤

  1. 搭建测试环境,配置pycharm以及python环境并进行验证。
  2. 安装所需的测试依赖包
  3. 进行代码编写:首先导入我需要的包。例如selenium、pytest、sleep等必需的工具包。其次,在编写的过程中,需要使用定位方法,例如xpath等合适的方法对登录框和密码框、登陆按钮进行定位。之后使用sendkey等方法进行网页操作。最后使用assert进行断言。
  4. 代码运行成功后,需要对代码进行持续的升级,以及优化。例如,方法的封装、调用,以及页面元素的封装以及调用等,直到形成测试框架的初始形态,对于登录页功能来讲,代码量较少,较易理解。
  5. 框架形成后,需要对框架进行持续升级和优化,因为页面元素在变化、项目也在不断迭代,因此测试框架需要持续升级才能适应项目的更新迭代,特别是对于敏捷测试来讲。

代码示例

方法封装,封装基类,也叫关键字
from selenium.webdriver import ActionChains
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.wait import WebDriverWait# 工具类
class WebKeys:# 构造方法,用于接受driver对象def __init__(self, driver):self.driver = driverself.wait = WebDriverWait(self.driver, 5)# 打开浏览器def open(self, url):self.driver.get(url)self.wait.until(ec.url_contains(url))# 元素定位def locator(self, name, value):el = self.driver.find_element(name, value)# 将元素的所在框标记出来self.locator_station(el)return el# 定位+显示等待def locator_with_wait(self, name, value):"""元素的定位+显示等待"""locator = (name, value)self.wait.until(ec.visibility_of_element_located(locator))el = self.driver.find_element(name, value)# 将元素的所在框标记出来self.locator_station(el)return el# 窗口切换def change_window(self, n):"""窗口切换的功能"""# 获取句柄handles = self.driver.window_handles# 切换到原始的页面, n = 0# 切换到第二个页面, n = 1 依次类推# 切换到最新的页面, n = -1self.driver.switch_to.window(handles[n])print("当前跳转成功的页面:", self.driver.title)# 元素文本获取 + 显示等待def text_wait(self, name, value, text):el = (name, value)res = self.wait.until(ec.text_to_be_present_in_element(el, text))return res# 对获取到的元素进行判断# 获取到的元素的文本信息进行判断# 鼠标事件def mouse_hold(self):"""鼠标事件的操作"""action = ActionChains(self.driver)action.click().click_and_hold().scroll_to_element().perform()# 键盘事件# 滚轮事件# 显示定位的地方,方便确认定位位置def locator_station(self, ele):self.driver.execute_script("arguments[0].setAttribute('style',arguments[1]);",ele,"border: 2px solid red"  # 边框,red红色)
数据读取驱动
import yamldef load_yaml(path):file = open(path, "r", encoding="utf-8")data = yaml.load(file, Loader=yaml.FullLoader)return data
页面定位元素
from selenium.webdriver.common.by import By# 用户名输入框
page_login_user = ['xpath', "//input[@placeholder='手机号码']"]# 密码输入框
page_login_indexPwd = ['xpath', "//input[@placeholder='密码']"]# 登陆按钮
page_login_loginBtn = ['xpath', "//input[@name='btnLogin']"]# 作家专区
page_index_author = [By.LINK_TEXT, "作家专区"]# 章节管理按钮
page_authorManage_chapterManageBtn = [By.XPATH, '//*/a[contains(text(),"章节")]']
操作元素
from selenium.webdriver.support.wait import WebDriverWait
from locate.allPages import *
from selenium.webdriver.support import expected_conditions as ecfrom key_word.keyword import WebKeys# 创建章节的业务场景类
class CreateChapterLogic(WebKeys):def createChapter(self, title):# 实例化waitwait = WebDriverWait(self.driver, 10)# 测试步骤# 01 点击作家专区、打开新页签self.locator_with_wait(*page_index_author).click()# 等待新页签出现wait.until(ec.number_of_windows_to_be(2))# 02 切换窗口self.change_window(-1)# 03 点击章节管理按钮self.locator_with_wait(*page_authorManage_chapterManageBtn).click()
用例层
import timeimport pytest
from selenium.webdriver.common.by import Byfrom data_driver.yaml_driver import load_yaml
from logic.create_chapter import CreateChapterLogic
from logic.login import LoginPage
from VAR.BOOKHOUSE_VAR import *@pytest.mark.skip
def test_case01(borwser):# 需要谷歌浏览器的实例化对象login = LoginPage(borwser)login.login(LOGIN_URL, USERNAME, PASSWD)# 创建章节的步骤createChapter = CreateChapterLogic(borwser)createChapter.createChapter("章节0001")@pytest.mark.parametrize('data', load_yaml("./data/userData.yaml"))
def test_case02(borwser, data):print("data:", data)# 需要谷歌浏览器的实例化对象login = LoginPage(borwser)login.login(LOGIN_URL, str(data['username']), str(data['passwd']))logic_text = login.text_wait('link text', str(data['username']), str(data['username']))assert logic_text is Truelogin.mouse_hold()
使用main_run运行
import pytestdef run():pytest.main(['-vs'])if __name__ == '__main__':run()

总结

搭建框架前,希望大家可以思考以下几个问题:
1、封装后的框架,作用大不大?

2、封装什么内容,是否明白?

3、自动化的技术,到底可以帮助功能测试解决什么问题?
耗时、重复的步骤多、避免人为的因素导致测试的结果正确性低

4、需要把重复的内容给他挑出来?
因为程序可以反复的执行(循环、重复的调用)

5、下一次执行用例的时候,如果遇到了这么重复性的内容,可以干什么? (复用)

在这种方法思路(POM)的指导下,我们还可以对框架进行深度优化和二次封装,增强测试框架的易用性。

以上就是今天为大家分享的全部内容,下一篇文章,再见!感谢阅读。

相关文章:

POM设计模式思路,详解POM:概述与介绍,POM思路梳理+代码示例(全)

概述 在UI自动化测试中,POM模式是一种设计思路,它的核心思想是方法的封装。它将方法类和页面元素进行分离,增强了代码的可维护性。值得注意的是,这种分层的设计模式,最好也是从线性代码开始,逐步将代码进行…...

1、学习 Eureka 注册中心

学习 Eureka 注册中心 一、创建 Eureka 微服务0、SpringBoot 和 SpringCloud 版本1、引入 Eureka 服务端依赖2、启动类加 EnableEurekaServer 注解3、配置 yaml 文件,把 Eureka 服务注册到 Eureka 注册中心4、访问 Eureka 服务端,查看注册中心的服务列表…...

何为分账系统?

1、分账系统产生的背景 在数字化浪潮下第三方支付价值凸显,大大提升资金流与信息流流转效率,成为构建产业数字化重要枢纽。近年来,基于云计算、大数据、人工智能、物联网等技术积累,以第三方支付为切点的金融科技创新爆发着强大的…...

机器学习10-特征缩放

特征缩放的目的是确保不同特征的数值范围相近,使得模型在训练过程中更加稳定,加速模型收敛,提高模型性能。具体而言,零均值和单位方差的目标有以下几点好处: 1. 均值为零(Zero Mean)&#xff1a…...

Java基于微信小程序的医院挂号小程序,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...

HarmonyOS一杯冰美式的时间 -- 验证码框

一、前言 像是短密码、验证码都有可能需要一个输入框,像是如下: 恰好在写HarmonyOS的时候也需要写一个验证码输入框,但是在实现的时候碰了几次灰,觉得有必要分享下,故有了此篇文章。 如果您有任何疑问、对文章写的不…...

GitLab配置SSHKey

段落一:什么是SSH密钥 SSH(Secure Shell)是一种网络协议,用于安全地远程登录和执行命令。SSH密钥是一种用于身份验证的加密文件,它允许您在与远程服务器通信时,无需输入密码即可进行认证。在GitLab中配置S…...

通过QT制作一个模仿微信主界面的界面(不要求实现具体通信功能)

main.cpp #include "widget.h" #include "second.h"#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();//实例化第二个界面Second s;QObject::connect(&w, &Widget::my_jump, &…...

作物模型狂奔:WOFOST(PCSE) 数据同化思路

去B吧&#xff0c;这里没图 整体思路&#xff1a;PCSE -》 敏感性分析 -》调参 -》同化 0、准备工作 0.0 电脑环境 我用的Win10啦&#xff0c;Linux、Mac可能得自己再去微调一下。 0.1 Python IDE 我用的Pycharm&#xff0c;个人感觉最好使的IDE&#xff0c;没有之一。 …...

腾讯云4核8G服务器能支持多少人访问?

腾讯云4核8G服务器支持多少人在线访问&#xff1f;支持25人同时访问。实际上程序效率不同支持人数在线人数不同&#xff0c;公网带宽也是影响4核8G服务器并发数的一大因素&#xff0c;假设公网带宽太小&#xff0c;流量直接卡在入口&#xff0c;4核8G配置的CPU内存也会造成计算…...

多重背包问题 ⅠⅡ Ⅲ

有 N 种物品和一个容量是 V 的背包。 第 i 种物品最多有 si 件&#xff0c;每件体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使物品体积总和不超过背包容量&#xff0c;且价值总和最大。 输出最大价值。 输入 第一行两个整数&#xff0c;N&#xf…...

挑战杯 python的搜索引擎系统设计与实现

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; python的搜索引擎系统设计与实现 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;5分创新点&#xff1a;3分 该项目较为新颖&#xff…...

【LeetCode: 103. 二叉树的锯齿形层序遍历 + BFS】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

C#学习(十三)——多线程与异步

一、什么是线程 程序执行的最小单元 一次页面的渲染、一次点击事件的触发、一次数据库的访问、一次登录操作都可以看作是一个一个的进程 在一个进程中同时启用多个线程并行操作&#xff0c;就叫做多线程 由CPU来自动处理 线程有运行、阻塞、就绪三态 代码示例&#xff1a; cl…...

MySQL 数据库安装教程详解(linux系统和windows系统)

MySQL 数据库是一种广泛使用的开源关系数据库管理系统。在 Linux 和 Windows 系统上安装 MySQL 数据库的步骤略有不同。以下是详细的安装教程。 Linux 系统安装教程 1. **安装前提**&#xff1a;确保你的 Linux 系统已经安装了 wget、unzip、tar 等必要的工具。 2. **下…...

从汇编分析C语言可变参数的原理,并实现一个简单的sprintf函数

C语言可变参数 使用printf等函数的时候函数原型是printf(const char* fmt, ...), 这一类参数的个数不限的函数是可变参数 使用 使用一个头文件stdarg.h, 主要使用以下的宏 typedef char * va_list;// 把 n 圆整到 sizeof(int) 的倍数 #define _INTSIZEOF(n) ( (sizeo…...

Word docx文件重命名为zip文件,解压后直接查看和编辑

一个不知道算不算冷的知识[doge]&#xff1a; docx格式的文件本质上是一个ZIP文件 当把一个.docx文件重命名为.zip文件并解压后&#xff0c;你会发现里面包含了一些XML文件和媒体文件&#xff0c;它们共同构成了Word文档的内容和格式。 例如&#xff0c;word/document.xml文件…...

SpringBoot中公共字段的自动填充

目录 1 前言 2 使用方法 2.1 自定义枚举类 2.2 自定义注解AutoFill 2.3 自定义切面类并设定切入点 2.4 切面类中设置前置通知&#xff0c;对公共字段赋值 2.5 在方法上添加自定义注解 3 最后 1 前言 在我们的项目中&#xff0c;项目表可能会有一些公共的字段需要我们的…...

【天衍系列 03】深入理解Flink的Watermark:实时流处理的时间概念与乱序处理

文章目录 01 基本概念02 工作原理03 优势与劣势04 核心组件05 Watermark 生成器 使用06 应用场景07 注意事项08 案例分析8.1 窗口统计数据不准8.2 水印是如何解决延迟与乱序问题&#xff1f;8.3 详细分析 09 项目实战demo9.1 pom依赖9.2 log4j2.properties配置9.3 Watermark水印…...

day07.C++类与对象

一.类与对象的思想 1.1面向对象的特点 封装、继承、多态 1.2类的概念 创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例&#xff08;Instance&#xff09;&#xff0c;拥有类的成员变量和成员函数。由{ }包围&#xff0c;由&#xff1b;结束。 class name{ //类的…...

String讲解

文章目录 String类的重要性常用的方法常用的构造方法String类的比较字符串的查找转化数字转化为字符串字符串转数字 字符串替换字符串的不可变性 字符串拆分字符串截取字符串修改 StringBuilder和StringBuffer String类的重要性 在c/c的学习中我们接触到了字符串&#xff0c;但…...

人群异常聚集监测系统-聚众行为检测与识别算法---豌豆云

聚众识别系统对指定区域进行实时监测&#xff0c;当监测到人群大量聚集、达到设置上限时&#xff0c;立即告警及时疏散。 旅游业作为国民经济战略性支柱产业&#xff0c;随着客流量不断增加&#xff0c;旅游景区和一些旅游城市的管理和服务面临着前所未有的挑战&#xff1a; …...

多模态基础---BERT

1. BERT简介 BERT用于将一个输入的句子转换为word_embedding&#xff0c;本质上是多个Transformer的Encoder堆叠在一起。 其中单个Transformer Encoder结构如下&#xff1a; BERT-Base采用了12个Transformer Encoder。 BERT-large采用了24个Transformer Encoder。 2. BERT的…...

图表示学习 Graph Representation Learning chapter2 背景知识和传统方法

图表示学习 Graph Representation Learning chapter2 背景知识和传统方法 2.1 图统计和核方法2.1.1 节点层次的统计和特征节点的度 节点中心度聚类系数Closed Triangles, Ego Graphs, and Motifs 图层次的特征和图的核节点袋Weisfieler–Lehman核Graphlets和基于路径的方法 邻域…...

OpenMVG(计算两个球形图像之间的相对姿态、细化重建效果)

目录 1 Bundle Adjustment(细化重建效果) 2 计算两个球形图像之间的相对姿态 1 Bundle Adjustment(细化重建效果) 数...

【QT+QGIS跨平台编译】之三十四:【Pixman+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、Pixman介绍二、文件下载三、文件分析四、pro文件五、编译实践一、Pixman介绍 Pixman是一款开源的软件库,提供了高质量的像素级图形处理功能。它主要用于在图形渲染、合成和转换方面进行优化,可以帮助开发人员在应用程序中实现高效的图形处理。 Pixman的主要特…...

2.17学习总结

tarjan 【模板】缩点https://www.luogu.com.cn/problem/P3387 题目描述 给定一个 &#xfffd;n 个点 &#xfffd;m 条边有向图&#xff0c;每个点有一个权值&#xff0c;求一条路径&#xff0c;使路径经过的点权值之和最大。你只需要求出这个权值和。 允许多次经过一条边或者…...

Unity类银河恶魔城学习记录7-7 P73 Setting sword type源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Sword_Skill_Controller.cs using System.Collections; using System.Col…...

安卓版本与鸿蒙不再兼容,鸿蒙开发工程师招疯抢

最近&#xff0c;互联网大厂纷纷开始急招华为鸿蒙开发工程师。这是一个新的信号。在Android和iOS长期霸占市场的今天&#xff0c;鸿蒙的崛起无疑为整个行业带来了巨大的震动。 2023年11月10日&#xff0c;网易更新了高级/资深Android开发工程师岗位&#xff0c;职位要求参与云音…...

《白话C++》第9章 泛型,Page842~844 9.4.2 AutoPtr

源起&#xff1a; C编程中&#xff0c;最容易出的问题之一&#xff0c;就是内存泄露&#xff0c;而new一个对象&#xff0c;却忘了delete它&#xff0c;则是造成内存泄露的主要原因之一 例子一&#xff1a; void foo() {XXXObject* xo new XXXObject;if(!xo->DoSomethin…...

服务流控(Sentinel)

引入依赖 <!-- 必须的 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency><!-- sentinel 核心库 --> <dependency><groupId>com.ali…...

点亮代码之灯,程序员的夜与电脑

在科技的海洋里&#xff0c;程序员是那些驾驶着代码船只&#xff0c;穿梭于虚拟世界的探险家。他们手中的键盘是航行的舵&#xff0c;而那台始终不愿关闭的电脑&#xff0c;便是他们眼中永不熄灭的灯塔。有人说&#xff0c;程序员不喜欢关电脑&#xff0c;这究竟是为什么呢&…...

ClickHouse--07--Integration 系列表引擎

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Integration 系列表引擎1 HDFS1.1 语法1.2 示例&#xff1a; 2 MySQL2.1 语法2.2 示例&#xff1a; 3 Kafka3.1 语法3.2 示例&#xff1a;3.3 数据持久化方法 Integ…...

前端架构: 脚手架框架之yargs的11种基础核心特性的应用教程

脚手架框架之yargs的基础核心特性与应用 1 &#xff09;概述 yargs 是脚手架当中使用量非常大的一个框架进入它的npm官网: https://www.npmjs.com/package/yargs 目前版本: 17.7.2Weekly Downloads: 71,574,188 (动态数据)最近更新&#xff1a;last month (github)说明这是一个…...

MySQL性能调优篇(6)-主从复制的配置与管理

MySQL数据库主从复制是一种常用的数据复制和高可用性解决方案。它允许将一个MySQL主服务器上的数据自动复制到多个从服务器上&#xff0c;从而提供了数据冗余备份、读写分离等优势。本文将详细介绍MySQL数据库主从复制的配置与管理。 1. 原理概述 MySQL主从复制是基于二进制日…...

Linux第49步_移植ST公司的linux内核第1步_获取linux源码

已知ST公司的linux源码路径&#xff1a; /home/zgq/linux/atk-mp1/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gnueabi/linux-stm32mp-5.4.31-r0 1、创建“my_linux”目录 打开第1个终端 输入“ls回车” 输入“cd linux/回车”&#xff0c;切换…...

怎样学习Windows下命令行编写

第一&#xff1a;Windows下命令行指的是cmd和powershell命令行编写 第二&#xff1a;必须要用好help或/?命令&#xff0c;这个命令是最基本的也是最常用的命令列表和语法查看命令 第三&#xff1a;cmd命令使用help查看命令列表或“一串带参数的命令 /?"&#xff08;不…...

数据结构第十六天(二叉树层序遍历/广度优先搜索(BFS)/队列使用)

目录 前言 概述 接口 源码 测试函数 运行结果 往期精彩内容 前言 从前的日色变得慢&#xff0c;车&#xff0c;马&#xff0c;邮件都慢&#xff0c;一生,只够爱一个人。 概述 二叉树的层序遍历可以使用广度优先搜索&#xff08;BFS&#xff09;来实现。具体步骤如下&…...

6.s081 学习实验记录(八)Networking

文章目录 network driver network driver //TODO...

图解贝塞尔曲线生成原理

贝塞尔曲线是一种在计算机图形学中广泛使用的参数曲线&#xff0c;主要用于二维图形应用程序中。它是由法国工程师皮埃尔贝塞尔在1962年提出的&#xff0c;主要用于汽车车身设计。贝塞尔曲线的主要特点是&#xff0c;只要确定了控制点&#xff0c;就可以生成一条平滑的曲线。 …...

租房招聘|在线租房和招聘平台|基于Springboot的在线租房和招聘平台设计与实现(源码+数据库+文档)

在线租房和招聘平台目录 目录 基于Springboot的在线租房和招聘平台设计与实现 一、前言 二、系统功能设计 三、系统实现 1、房屋管理 2、招聘管理 3、平台资讯管理 4、平台资讯类型管理 四、数据库设计 1、实体ER图 六、论文参考 七、最新计算机毕设选题推荐 八、源…...

简单试验:用Excel进行爬虫

文章目录 Excel的版本具体操作实例从网站上爬取工商银行的汇率Excel的版本 office 2016,2019,365这几个版本都可以 具体操作 #mermaid-svg-NlIVMivGoJbdyWW0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-NlIVMi…...

SQL 精讲-MySql 常用函数,MySQL语句精讲和举例

FORMAT(数值,保留位数) 四舍五入 SELECT *,FORMAT(score/3,2) from studentROUND(数值,保留位数) 四舍五入 SELECT ROUND(score/3,2) from studentCONCAT(字符串 1,字符串 2) 字符串拼接 SELECT CONCAT(customer_name, (,address,)) from mt_customerLEFT(字符串,长度) 截取…...

nlp中如何数据增强

在自然语言处理&#xff08;NLP&#xff09;中&#xff0c;数据增强是一种常用的技术&#xff0c;旨在通过对原始文本进行一系列变换和扩充&#xff0c;生成更多多样化的训练数据。这有助于提高模型的泛化能力和鲁棒性。下面是一些常见的数据增强方法在NLP中的应用&#xff1a;…...

python:xml.etree,用 xmltodict 转换为json数据,生成jstree所需的文件

请参阅&#xff1a;java : pdfbox 读取 PDF文件内书签 或者 python&#xff1a;从PDF中提取目录 请注意&#xff1a;书的目录.txt 编码&#xff1a;UTF-8&#xff0c;推荐用 Notepad 转换编码。 xml 是 python 标准库&#xff0c;在 D:\Python39\Lib\xml\etree pip install …...

C#log4net日志保存到Sqlserver数据库表(16)

要将log4net的日志保存到SQL Server数据库表中&#xff0c;你需要配置log4net使用一个数据库追加器&#xff08;appender&#xff09;&#xff0c;通常是AdoNetAppender。以下是一个示例配置&#xff0c;展示如何将log4net的日志输出配置为写入SQL Server数据库表。 首先&…...

SpringCloud-Nacos集群搭建

本文详细介绍了如何在SpringCloud环境中搭建Nacos集群&#xff0c;为读者提供了一份清晰而详尽的指南。通过逐步演示每个关键步骤&#xff0c;包括安装、配置以及Nginx的负载均衡设置&#xff0c;读者能够轻松理解并操作整个搭建过程。 一、Nacos集群示意图 Nacos&#xff0…...

第十五届蓝桥杯全国软件和信息技术专业人才大赛个人赛(软件赛)软件测试组竞赛规则及说明

第十五届蓝桥杯全国软件和信息技术专业人才大赛个人赛 (软件赛)软件测试组竞赛规则及说明 目录...

【算法与数据结构】496、503、LeetCode下一个更大元素I II

文章目录 一、496、下一个更大元素 I二、503、下一个更大元素II三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、496、下一个更大元素 I 思路分析&#xff1a;本题思路和【算法与数据结构】739、LeetCode每日温度类似…...

当AGI遇到人形机器人

为什么人类对人形机器人抱有执念 人形机器人是一种模仿人类外形和行为的机器人&#xff0c;它的研究和开发有着多方面的目的和意义。 人形机器人可以更好地适应人类的环境和工具。人类的生活和工作空间都是根据人的尺寸和动作来设计的&#xff0c;例如门、楼梯、桌椅、开关等…...