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

三大等待和三大切换

三大等待

1、三大等待:等待的方式有三种:强制等待,隐性等待,显性等待。

  • 1、强制等待:time.sleep(2),秒

    • 优点:使用简单
    • 缺点:等待时间把握不准,容易造成时间浪费或者等待时间不足,不灵活
  • 2、智能等待–在指定时间内(最长时间12,15s),什么时候成立,什么时候不等了

    • 2.1、隐形等待:driver.implicitly_wait(“超时时长-秒”)
      条件:等待一个元素被找到。 找元素都是从html当中去找。find_element,在html当中是存在的。
      特征:在一个浏览器会话当中只需要被调用一次,所有的find_element都可以应用。
      如果超时时长以内没有找着元素,就会抛异常:NosuchElementException的找不到元素的异常。
      优点:全局应用,它适用于WebDriver会话期间中所有查找的Web元素(通过findelement方法)
      缺点:它只支持单一条件:元素存在;只能等待元素存在,不能适用条件
      更复杂的情况,如:元素可点击、元素可见
    • 2.2、显性等待:
      注意:条件的参数必须要是元组或者列表的类型的:(元素定位的方法,元素定位表达式)
      WebDriverWait(driver, 超时时间, 轮询周期默认0.5).until(条件) 直到条件成立 ---- 用这个
      WebDriverWait(driver, 超时时间, 轮询周期默认0.5).until_not(条件) 直到条件不成立 -用的少
      局部生效,哪里需要等待哪里就要调用,生效只有一次。
      如果超时时长以内没有找着元素,就会抛异常: TimeoutException,超时异常
      优点:可以设置更加丰富的特定条件
      缺点:仅对指定的元素生效,代码略复杂 【但是后面框架封装之后 封装一次 后面调用】
      presence_of_element_located(元组/列表) :给定的元素存在
      visibility_of_element_located(元组/列表) :给定的元素可见
      element_to_be_clickable(元组/列表) : 给定的元素可点击

2、元素存在/可见/可用的区别: 元素存在< 可见< 可用

  • 元素的存在: 能find_element就可以了。如果存在但不可见,是可以获取元素属性的,但是不能够对元素进行操作。
    元素的可见: 在存在的基础上,元素在页面上大小>0,即在页面上显示出来了 肉眼可见。
    比如百度页面上的设置按钮,鼠标悬浮上去才会显示菜单,那么默认情况下 这个元素是存在但不可见的:
    style=‘display:None’; 不可见,这个元素是存在但是不可见。
    style=‘display:block’ 元素展示出来了,存在并且可见。
    元素的可用:在可见的基础上,能够使用其原始功能,比如可点击,可输入等
    比如按钮可点击即可用,不可点击即不可用。输入框可输入即可用,不可输入即不可用。下拉列表可以选可用

3、find_element和 find_elements

  • find_element — 在页面当中找到匹配的第一个元素。返回的WebElement对象 【就算元素定位的表达式不唯一,也会返回找到第一个元素】
    如果元素表达式能唯一尽量唯一,如果实在没有办法找到唯一的,你也可以使用这个不唯一方法 找到第一个元素。
  • find_elements — 在页面当中,找到匹配的所有元素。返回的列表。列表当中每个成员都是WebElement对象 --万不得已的时候可以用,基本上很少用。

4、WebElement类当中定义常用的方法:

  • send_keys() — 输入 (Keys类定义了键盘上除了26个字母和0-9数字外其它的按键。)
  • click() — 点击操作
    text — 获取元素的文本内容(页面操作之后某些元素的文本发生变化 或者 拿到这个文本用来做断言)
  • get_attribute() — 获取元素的属性值
  • clear() — 清除内容
  • is_displayed() – 元素是否显示 结果为布尔值,可以用来做断言

2、三大切换

元素报错找不到可能的原因有哪些?【F12里可找到这个元素 但是代码执行报错】
1)页面需要加一些等待
2)窗口切换
3)iframe子页面
4)页面有弹框

  • 1、窗口切换
  • 当我们点击了 a 标签元素(超链接)时,会触发打开链接页面的事件,有两种
    情形:
    1、在当前窗口加载新页面内容
    2、新建一个窗口加载新页面内容,这种情况在 a 标签有
    target=“_blank” 时触发。
    当发生第2种情况时,我们需要切换窗口。在新的窗口里定位元素。
    在这里插入图片描述

切换的步骤:
1)执行打开新窗口的操作
2)获取现在所有的窗口句柄。
窗口列表 : wins = driver.window_handles ,结果是个列表,最新的
窗口在列表的最后。
新打开的窗口追加在窗口列表末尾。
通过索引进行选择: wins[-1]获取最新的窗口
3)切换到最新窗口:driver.switch_to.window(窗口列表[-1])
切换窗口-参数windowname(窗口的名字 也就是窗口句柄)
需要注意,窗口的句柄并不是固定的,而是由浏览器分配的,类似
于进程号: 窗口句柄是唯一,但是并不固定 ,所以不能直接写死进
行切换。
需要通过获取到所有句柄后的列表 取值

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver  = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
x_wait_click =(By.XPATH, '//a[contains(text(),"新闻")]')
WebDriverWait(driver, 5, 0.5).until(EC.element_to_be_clickable(x_wait_click)).click()
#打开新的tab页,打开新闻的页面
#第一步:获取所有的窗口的句柄wins = driver.window_handlesprint(wins[-1])
# 第二步:取值切换新的窗口
driver.switch_to.window(wins[-1])
#//input[@id="ww"]
ww = (By.XPATH,'//input[@id="ww"]')
WebDriverWait(driver,10,1).until(EC.visibility_of_element_located(ww)).send_keys("中国")time.sleep(2)
driver.quit()
  • 2、多窗口切换:
'''
打开新的tab页,打开新闻的页面
第一步:获取所有的窗口的句柄import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver  = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
news =(By.XPATH, '//a[contains(text(),"新闻")]')
map = (By.XPATH,'//a[contains(text(),"地图")]')
post_par = (By.XPATH,'//a[contains(text(),"贴吧")]')
WebDriverWait(driver, 5, 0.5).until(EC.element_to_be_clickable(news)).click()
WebDriverWait(driver, 5, 0.5).until(EC.element_to_be_clickable(map)).click()
WebDriverWait(driver, 5, 0.5).until(EC.element_to_be_clickable(post_par)).click()
#打开新的tab页,打开新闻的页面
#第一步:获取所有的窗口的句柄wins = driver.window_handles
print(driver.current_url)
print(wins)
ww = (By.XPATH,'//input[@id="ww"]')
for i in wins:if driver.current_url =="https://news.baidu.com/":breakelse:
# 取值切换新的窗口driver.switch_to.window(i)
WebDriverWait(driver,10,0.5).until(EC.visibility_of_element_located(ww)).send_keys("中国")time.sleep(2)
driver.quit()
  • 2、iframe切换

      1. iframe是什么?
      • iframe里面放的是另外一个html页面。页面嵌套
        driver.find_element的时候,只在当前所在的html当中找元素,不可以
        跨html的。所以,如果我们要操作iframe当中html里的元素,那么必须先切换到iframe当
        中的html当中去
    • 2.如何确认页面是否有iframe的步骤:

      • 第一个就是:明确元素定位正确且等待到位,依然找不到元素,那么有可能就是在iframe当中。
        第二个就是:在元素定位的时候,查看上方的绝对路径链接,如果其中有2个html,说明在iframe当中
    • 3、iframe切换的方法:driver.switch_to.frame(有2种方式)

      • 第一种:通过iframe元素的name或者id属性切换: 【QQ空间案例】
        driver.switch_to.frame(“login_frame”)
        注意: 如果id是变化的,也是不可以用于定位的,要换定位方法进
        行定位; 如何确认是变化的,有数字+刷新确认。| 没有id和name
        属性,也需要换方法定位并切换。
        第二种:识别你要操作的元素是不是在iframe当中 【126.com案例】
        在这里插入图片描述
    • 4、iframe退出

      • 退出iframe
        切到子页面里,有时候需要退回到主页面里定位,就需要退出iframe:
        driver.switch_to.default_content() — 跳出iframe,回到默认的html当
        中。如果有多层页面嵌套,一下回到最外层页面。
        driver.switch_to.parent_frame() : 回到父级页面中,只能一级一级的
        跳出
        注意:一个主页面可能会存在多个iframe子页面,要进去另外一个
        iframe,就需要先退出 再进去另外一个。
  • 3、弹框切换

    • 弹窗切换【alert(警告消息框),confirm(确认消息框),prompt(提示消息对话框) 】

    • 如果页面发生了弹窗,要点击弹窗元素,也要进行弹窗切换,不然定位不到元素。
      弹窗有三种不同类型:alert(警告消息框)、confirm(确认消息框)、prompt(提示消息对话框)
      通过switch_to.alert()切换到弹窗
      再使用accept、dismiss、send_keys、text方法进行操作
      1)alert弹框: 本质上是js的弹框 ,需要切换后将它关掉。 ==最常见 优先掌握
      弹框出现后,要点击确认,才会消失。操作:
      accept(): 点击确定
      text: 获取弹框文本
      2)confirm(确认消息框): 确认和取消两个选项,可以有如下操作:
      dismiss(): 点击取消
      accept(): 点击确定
      text: 获取弹框文本
      3)prompt(提示消息对话框),可以输入内容。 有如下四种操作:
      dismiss(): 点击取消
      accept(): 点击确定
      text: 获取框中的文本
      send_keys(): 输入文本
      注意: prompt输入文本,chrome浏览器不支持,Firefox支持,chrome浏览器的驱动bug

    • 4、如果元素定位不到,有哪些原因?【no suchelement 如何排查】

      • 1、检查我们的元素定位表达式是否写错,可以F12搜索验证
        2、检查是否是需要加等待: 智能等待+ 强制登录结合使用
        3、检查是否元素在iframe中,如果是的话就需要切换iframe
        4、检查元素是否在新的窗口中,如果是的话我们就需要切换窗口
        5、检查是否有弹框,需要点掉弹框再去定位;
        6、是否元素不可见,先移动鼠标或者其他操作让你可见后再操作 – 操作鼠标
        7、是否无法直接操作,可以通过js 点击 或者键鼠操作等。 – js点击 后面会讲

相关文章:

三大等待和三大切换

三大等待 1、三大等待&#xff1a;等待的方式有三种&#xff1a;强制等待&#xff0c;隐性等待&#xff0c;显性等待。 1、强制等待&#xff1a;time.sleep(2)&#xff0c;秒 优点&#xff1a;使用简单缺点&#xff1a;等待时间把握不准&#xff0c;容易造成时间浪费或者等待时…...

工程化实践:Flutter项目结构与规范

工程化实践&#xff1a;Flutter项目结构与规范 在Flutter项目开发中&#xff0c;良好的工程化实践对于提高开发效率、保证代码质量和团队协作至关重要。本文将从项目结构、代码规范、CI/CD流程搭建以及包管理等方面&#xff0c;详细介绍Flutter项目的工程化最佳实践。 项目结…...

数据结构-Map和Set

文章目录 1. 搜索树2. Map3. Set4. 哈希表4.1 哈希表的基本概念4.2 哈希表的实现方法4.3 Java中的哈希表实现 5. 哈希桶哈希桶的实现方式哈希桶的作用哈希桶的应用模拟实现 1. 搜索树 二叉搜索树&#xff08;Binary Search Tree, BST&#xff09;是一种特殊的二叉树&#xff0…...

cpolar 内网穿透 实现公网可以访问本机

1、登录网站&#xff0c;升级成专业版&#xff0c;测试的话建议选一个月付费&#xff0c;选择预留 2、保留的TCP地址增加一条记录&#xff0c;描述可以自己取 3、验证&#xff0c;生成一个Authtocken码 4、在安装目录下&#xff0c;打开CMD命令&#xff0c;复制上面的码运行aut…...

QT调用ffmpeg库实现视频录制

可以通过QProcess调用ffmpeg命令行,也可以直接调用ffmpeg库,方便。 调用库 安装ffmpeg ffmpeg -version 没装就装 sudo apt-get update sudo apt-get install ffmpeg sudo apt-get install ffmpeg libavdevice-dev .pro引入库路径,引入库 LIBS += -L/usr/lib/aarch64-l…...

AI专题(一)----NLP2SQL探索以及解决方案

前面写了很多编码、算法、底层计算机原理等相关的技术专题&#xff0c;由于工作方向调整的缘故&#xff0c;今天开始切入AI人工智能相关介绍。本来按照规划&#xff0c;应该先从大模型的原理开始介绍会比较合适&#xff0c;但是计划赶不上变化&#xff0c;前面通用大模型的工作…...

Redis 的指令执行方式:Pipeline、事务与 Lua 脚本的对比

Pipeline 客户端将多条命令打包发送&#xff0c;服务器顺序执行并一次性返回所有结果。可以减少网络往返延迟&#xff08;RTT&#xff09;以提升吞吐量。 需要注意的是&#xff0c;Pipeline 中的命令按顺序执行&#xff0c;但中间可能被其他客户端的命令打断。 典型场景&…...

群辉默认docker数据存储路径

做一下笔记 今天不小心路径规划错误&#xff0c;好不容易找到了数据&#xff0c;特此做个路径记录。 /var/packages/ContainerManager/var/docker/...

【C++】入门基础【上】

目录 一、C的发展历史二、C学习书籍推荐三、C的第一个程序1、命名空间namespace2、命名空间的使用3、头文件<iostream>是干什么的&#xff1f; 个人主页<—请点击 C专栏<—请点击 一、C的发展历史 C的起源可以追溯到1979年&#xff0c;当时Bjarne Stroustrup(本…...

Git LFS 学习笔记:原理、配置、实践与心路历程

最近在学习 Git LFS&#xff0c;把一些零散的笔记整理成一篇博文&#xff0c;记录我的学习思路与心路历程。以下内容均为个人理解总结&#xff0c;部分尚未在生产项目中验证&#xff0c;仅供回顾与参考。 &#x1f50d; Git LFS 是什么&#xff1f;原理是什么&#xff1f; 刚接…...

SpringBoot集成oshi 查询系统数据

实现功能&#xff1a; ​​​​​​​ <!-- 获取系统信息 --><dependency><groupId>com.github.oshi</groupId><artifactId>oshi-core</artifactId><version>6.6.1</version></dependency><dependency><groupI…...

iOS Facebook 登录

iOS Facebook 登录 官方文档 SDK下载链接...

uniapp打包IOS私钥证书过期了,如何在非mac系统操作

在非Mac系统下解决uniapp打包iOS私钥证书过期的问题&#xff0c;需通过以下步骤实现&#xff1a; --- ### **一、重新生成iOS证书&#xff08;非Mac环境操作&#xff09;** 1. **生成私钥和CSR文件** 使用OpenSSL工具&#xff08;需提前安装&#xff09;生成私钥和证书签…...

Axios的使用

Axios 是一个基于 Promise 的现代化 HTTP 客户端库&#xff0c;专为浏览器和 Node.js 设计。在企业级应用中&#xff0c;它凭借以下核心优势成为首选方案&#xff1a; 一、Axios 的核心优势 特性说明Promise 支持天然支持异步编程&#xff0c;避免回调地狱拦截器机制可全局拦截…...

第八篇:系统分析师第三遍——3、4章

目录 一、目标二、计划三、完成情况四、意外之喜(最少2点)1.计划内的明确认知和思想的提升标志2.计划外的具体事情提升内容和标志 五、总结 一、目标 通过参加考试&#xff0c;训练学习能力&#xff0c;而非单纯以拿证为目的。 1.在复习过程中&#xff0c;训练快速阅读能力、掌…...

【2025-泛计算机类-保研/考研经验帖征集】

【2025-泛计算机类-保研/考研经验帖征集】 打扰您1分钟时间看下这里&#xff1a; 这是一个无偿为爱发电的项目&#xff0c;旨在收集湖南大学2025届毕业的计算机类学科同学的经验帖&#xff0c; 我将定期汇总链接&#xff0c;在校内推免群中宣传&#xff0c;为校内的学弟学妹们…...

Flink介绍——实时计算核心论文之Kafka论文详解

引入 我们通过S4和Storm论文的以下文章&#xff0c;已经对S4和Storm有了不错的认识&#xff1a; S4论文详解S4论文总结Storm论文详解Storm论文总结 不过&#xff0c;在讲解这两篇论文的时候&#xff0c;我们其实没有去搞清楚对应的流式数据是从哪里来的。虽然S4里有Keyless …...

细节:如何制作高质量的VR全景图

细节&#xff1a;如何制作高质量的VR全景图 VR全景图是通过虚拟现实和3D技术实现的全景展示方式&#xff0c;能够将实景以1:1的比例等比复刻&#xff0c;并还原到互联网上&#xff0c;使用户能够在线上游览世界&#xff0c;获得沉浸式的体验。制作高质量的VR全景图是一个复杂而…...

深度学习中的概念——元素积(哈达玛积)

元素积操作&#xff08;哈达玛积&#xff09; &#x1f522; 基本定义 矩阵的哈达玛积 对于两个同维度的矩阵&#xff1a; A [ a i j ] , B [ b i j ] A [a_{ij}], \quad B [b_{ij}] A[aij​],B[bij​] 它们的哈达玛积定义为&#xff1a; C A ∘ B 其中 c i j a i j…...

探索 Flowable 后端表达式:简化流程自动化

什么是后端表达式&#xff1f; 在 Flowable 中&#xff0c;后端表达式是一种强大的工具&#xff0c;用于在流程、案例或决策表执行期间动态获取或设置变量。它还能实现自定义逻辑&#xff0c;或将复杂逻辑委托…… 后端表达式在 Flowable 的后端运行&#xff0c;无法访问前端…...

AI语音助手 React 组件使用js-audio-recorder实现,将获取到的语音转成base64发送给后端,后端接口返回文本内容

页面效果&#xff1a; js代码&#xff1a; import React, { useState, useRef, useEffect } from react; import { Layout, List, Input, Button, Avatar, Space, Typography, message } from antd; import { SendOutlined, UserOutlined, RobotOutlined, AudioOutlined, Stop…...

《软件设计师》复习笔记(11.6)——系统转换、系统维护、系统评价

目录 一、遗留系统&#xff08;Legacy System&#xff09; 定义&#xff1a; 特点&#xff1a; 演化策略&#xff08;基于价值与技术评估&#xff09;&#xff1a; 高水平 - 低价值&#xff1a; 高水平 - 高价值&#xff1a; 低水平 - 低价值&#xff1a; 低水平 - 高价…...

学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、GlitchPass渲染通道)

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.EffectComposer 后期…...

Yarn的定义?

YARN&#xff08;Yet Another Resource Negotiator&#xff09; 是 Apache Hadoop 的核心组件之一&#xff0c;负责集群的资源管理和任务调度。它的主要作用是将 Hadoop 的资源管理和作业调度/监控功能分离&#xff0c;形成一个通用的资源管理平台&#xff0c;可以支持多种计算…...

职坐标IT培训热门技术实战精讲

在数字化转型浪潮中&#xff0c;人工智能、大数据与云原生已成为驱动产业升级的核心引擎。职坐标IT培训课程以实战导向为基石&#xff0c;聚焦高薪岗位核心技术栈&#xff0c;通过拆解企业级项目案例&#xff0c;将复杂的技术理论转化为可落地的工程实践。课程模块涵盖从架构设…...

前端:uniapp框架中<scroll-view>r如何控制元素进行局部滚动

以下是使用 <scroll-view> 实现局部滚动的完整示例&#xff0c;包含动态内容、滚动控制和滚动位置监听&#xff1a; 一、基础局部滚动示例 <template><view class"container"><!-- 固定高度的滚动容器 --><scroll-view scroll-y :scroll…...

【KWDB 创作者计划】_算法篇---Stockwell变换

文章目录 前言一、Stockwell变换原理详解1.1 连续S变换定义1.2 离散S变换1.3简介 二、S变换的核心特点2.1频率自适应的时频分辨率2.1.1高频区域2.1.2低频区域 2.2无交叉项干扰2.3完全可逆2.4相位保持2.5与傅里叶谱的直接关系 三、应用领域3.1地震信号分析3.2生物医学信号处理3.…...

桌面级OTA测试解决方案:赋能智能网联汽车高效升级

一、前言 随着智能网联汽车的快速发展&#xff0c;OTA&#xff08;Over-The-Air&#xff09;技术已成为汽车软件更新和功能迭代的关键手段。为确保OTA升级的可靠性、安全性和效率&#xff0c;构建一套高效、便捷的桌面级OTA测试解决方案至关重要。 本方案基于Vector先进的软硬…...

京东物流基于Flink StarRocks的湖仓建设实践

摘要&#xff1a;本文整理自京东物流高级数据开发工程师梁宝彬先生在 Flink Forward Asia 2024 论坛中的分享。内容主要为以下四个部分&#xff1a; 1、实时湖仓探索与建设 2、实时湖仓应用 3、问题与思考 4、未来展望 今天&#xff0c;将分享的主题大纲包括&#xff1a;首先&a…...

【Test Test】灰度化和二值化处理图像

文章目录 1. 图像灰度化处理对比2. 代码示例3. 二值化处理 1. 图像灰度化处理对比 2. 代码示例 #include <opencv2/opencv.hpp> using namespace cv;int main() {Mat currentImage imread("path_to_image.jpg"); // 读取彩色图像Mat grayImage;// 将彩色图像…...

Docker快速入门

1 基本信息 1.1 基础概览 &#xff08;1&#xff09;容器与镜像 容器‌&#xff1a;轻量级的独立运行时环境&#xff0c;基于Linux的命名空间&#xff08;namespace&#xff09;和控制组&#xff08;cgroup&#xff09;技术实现资源隔离‌。容器通过镜像创建&#xff0c;每个容…...

AI 编程工具—如何在 Cursor 中集成使用 MCP工具

AI 编程工具—如何在 Cursor 中集成使用 MCP工具 这里我们给出了常用的MCP 聚合工具,也就是我们可以在这些网站找MCP服务 这是一个MCP Server共享平台,用户可以在上面发布和下载MCP Server配置。在这里可以选择你需要的MCP 服务。 如果你不知道你的mcp 对应的server 名称也不…...

航电系统通信与数据链技术分析

一、技术要点 1. 高带宽与低时延通信技术 航电系统需支持实时数据传输&#xff0c;如民航VDL2数据链采用D8PSK调制和Reed Solomon编码技术&#xff0c;传输速率达31.5Kb/s&#xff0c;并通过物理层优化减少码间串扰。新一代LDACS系统则利用L频段频谱&#xff0c;提供比传统VD…...

windwos脚本 | 基于scrcpy,只投声音、只投画面

安装scrcpy&#xff0c;scrcpy自带adb 写脚本命名为 .bat 结尾 注意这里的set "PATHD:\tools\scrcpy-win64-v3.2;%PATH%" 替换成scrcpy的安装目录 echo off :: 设置UTF-8编码 chcp 65001 > nul :: 设置标题 title 手机投屏工具:: 添加 scrcpy 路径到 PATH set &q…...

产品经理面试题与参考答案资料(2025年版)

一、技术背景与工具能力 问题1: 软件开发生命周期(SDLC)包括哪些阶段?作为产品经理,你如何参与每个阶段? 参考答案: 软件开发生命周期通常划分为需求分析、设计、开发、测试、部署和维护六个阶段。作为产品经理,你需要在...

HTML 初识

段落标签 <p><!-- 段落标签 -->Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugiat, voluptate iure. Obcaecati explicabo sint ipsum impedit! Dolorum omnis voluptas sint unde sed, ipsa molestiae quo sapiente quos et ad reprehenderit.&l…...

CSS3笔记

文章目录 1.CSS的概念2.CSS的引入方式3.选择器3.1基础选择器3.1.1标签选择器3.1.2类选择器3.1.3id选择器3.1.4通配符选择器 4.画盒子5.文字控制属性5.1 字体大小-font-size5.2 字体粗细-font-weight5.3 字体倾斜-font-style5.4 行高-line-height5.5 字体族-font-family5.6 字体…...

yarn的定义

YARN是一个分布式资源管理平台&#xff0c;它通过分离资源管理和作业调度的功能&#xff0c;为Hadoop集群提供了一种高效、灵活且可扩展的方式来管理和分配计算资源。YARN的核心目标是将资源管理与作业调度/监控的功能分离&#xff0c;从而让Hadoop能够支持更多种类的计算框架&…...

CSS 美化页面(五)

一、position属性 属性值‌‌描述‌‌应用场景‌static默认定位方式&#xff0c;元素遵循文档流正常排列&#xff0c;top/right/bottom/left 属性无效‌。普通文档流布局&#xff0c;默认布局&#xff0c;无需特殊定位。relative相对定位&#xff0c;相对于元素原本位置进行偏…...

互联网大厂Java面试:微服务与分布式系统挑战

互联网大厂Java面试&#xff1a;微服务与分布式系统挑战 在互联网的大潮中&#xff0c;无数程序员怀揣着梦想&#xff0c;希望能在一线大厂找到自己的位置。今天的故事主角是马飞机&#xff0c;一位充满幽默感但技术略显水货的程序员。他来到了一家知名互联网公司参加Java开发…...

数据结构——顺序表(C语言实现)

1.顺序表的概述 1.1 顺序表的概念及结构 在了解顺序表之前&#xff0c;我们要先知道线性表的概念&#xff0c;线性表&#xff0c;顾名思义&#xff0c;就是一个线性的且具有n个相同类型的数据元素的有限序列&#xff0c;常见的线性表有顺序表、链表、栈、队列、字符串等等。线…...

FastGPT安装前,系统环境准备工作?

1.启用适用于 Linux 的 Windows 子系统 方法一&#xff1a;打开控制面板 -> 程序 -> 启用或关闭Windows功能->勾选 “适用于Linux的Vindows子系统” 方法二&#xff1a;以管理员身份打开 PowerShell&#xff08;“开始”菜单 >“PowerShell” >单击右键 >“…...

【2】CICD持续集成-k8s集群中安装Jenkins

一、背景&#xff1a; Jenkins是一款开源 CI&CD 系统&#xff0c;用于自动化各种任务&#xff0c;包括构建、测试和部署。 Jenkins官方提供了镜像&#xff1a;https://hub.docker.com/r/jenkins/jenkins 使用Deployment来部署这个镜像&#xff0c;会暴露两个端口&#xff…...

相比其他缓存/内存数据库(如 Memcached, Ehcache 等),Redis 在微服务环境中的优势和劣势是什么?

我们来比较一下 Redis 与 Memcached、Hazelcast、Ehcache 等在微服务环境下的优势和劣势。 Redis 的优势 : 丰富的数据结构 (Rich Data Structures): 优势: 这是 Redis 最显著的优势之一。除了简单的 Key-Value (字符串) 外&#xff0c;Redis 还原生支持 Lists, Sets, Sorted …...

Day53 二叉树的层序遍历

给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* T…...

mac上安装VMWare Fusion安装ubuntu系统问题

mac不能复制粘贴到虚拟机的ubuntu系统里&#xff0c;没有下载vmtools 在ubuntu系统执行命令 sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop -y ubuntu 下载地址 https://cdimage.ubuntu.com/ubuntu/releases/20.04/release/...

JAVA Web_定义Servlet_处理POST请求【练习】

题目 有一个登录页面&#xff08;login.html&#xff09;&#xff0c;其登录表单的HTML代码如下&#xff1a; </form action"doLogin" method "post"> 用户名&#xff1a;<input type"text" name"userName"><br>…...

FreeRTOS任务通知

一、什么是任务通知 FreeRTOS从版本V8.2.0开始提供通知这个功能&#xff0c;每个任务都有一个32位的通知值。按照官方说法&#xff0c;使用消息通知比通过二进制信号量方式解除阻塞任务快45%&#xff0c;且更加省内存&#xff08;无需创建队列&#xff09;。 &#xff08;也就…...

NO.97十六届蓝桥杯备战|数论板块-最大公约数和最小公倍数|欧几里得算法|秦九韶算法|小红的gcd(C++)

约数和倍数 如果a 除以b 没有余数&#xff0c;那么a 就是b 的倍数&#xff0c;b 就是a 的约数&#xff0c;记作b ∣ a 。 约数&#xff0c;也称因数。 最⼤公约数和最⼩公倍数 最⼤公约数Greatest Common Divisor&#xff0c;常缩写为gcd。 ⼀组整数的公约数&#xff0c;是…...

ESP32之本地HTTP服务器OTA固件升级流程,基于VSCode环境下的ESP-IDF开发(附源码)

背景知识&#xff1a; 本实验利用编译链内Python内置的 HTTP 服务器&#xff0c;将升级包通过http发送给设备&#xff0c;实现OTA固件升级。 目录 背景知识&#xff1a; 1.创建工程 1.1 创建OTA基础工程 3.编写、修改代码 3.1 修改menuconfig配置文件 3.1.1 配置WiFi账…...