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

Python的web自动化学习(四)Selenium的显性等待(元素定位)

引言:

Selenium的显性等待,其常用的定位方法介绍,后面持续更细具体用法

示例如下:

<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">

ID定位

wait.until(EC.visibility_of_element_located((By.ID, 'kw')))

Name定位:

wait.until(EC.visibility_of_element_located((By.NAME, 'wd')))

Class定位:

wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 's_ipt')))

Tag定位:

wait.until(EC.visibility_of_element_located((By.TAG_NAME, 'element_tag')))

Link Text定位:

wait.until(EC.visibility_of_element_located((By.LINK_TEXT, 'link_text')))

Partial Link Text定位: Link Text包含定位:

wait.until(EC.visibility_of_element_located((By.PARTIAL_LINK_TEXT, 'partial_link_text')))

CSS Selector定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'css_selector')))

XPath定位:

wait.until(EC.visibility_of_element_located((By.XPATH, 'xpath')))

层级定位:

parent_element = driver.find_element(By.XPATH, 'parent_xpath')
wait.until(EC.visibility_of_element_located((By.XPATH, 'child_xpath')), parent_element)

多个条件组合定位:

wait.until(EC.visibility_of_element_located((By.XPATH, 'xpath')) and EC.element_to_be_clickable((By.ID, 'element_id')))

标签属性定位:

wait.until(EC.visibility_of_element_located((By.XPATH, '//tag[@attribute="value"]')))

元素文本定位:

wait.until(EC.visibility_of_element_located((By.XPATH, '//*[text()="element_text"]')))

元素属性值包含定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '[attribute*="value"]')))

元素属性值以定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '[attribute^="value"]')))

元素属性值结尾定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '[attribute$="value"]')))

元素文本包含定位:

wait.until(EC.visibility_of_element_located((By.XPATH, '//*[contains(text(), "element_text")]')))

属性值正则匹配定位:

wait.until(EC.visibility_of_element_located((By.XPATH, '//*[matches(@attribute, "regex_pattern")]')))

子元素定位:

parent_element = driver.find_element(By.XPATH, 'parent_xpath')
wait.until(EC.visibility_of_element_located((By.XPATH, 'child_xpath')), parent_element)

元素索引定位:

wait.until(EC.visibility_of_element_located((By.XPATH, '(//tag)[index]')))

兄弟元素定位:

wait.until(EC.visibility_of_element_located((By.XPATH, 'preceding-sibling::tag')))

父元素定位:

wait.until(EC.visibility_of_element_located((By.XPATH, 'parent::tag')))

祖先元素定位:

wait.until(EC.visibility_of_element_located((By.XPATH, 'ancestor::tag')))

子元素索引定位:

wait.until(EC.visibility_of_element_located((By.XPATH, 'parent_xpath/tag[index]')))

元素属性值不等于定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '[attribute!="value"]')))

元素属性值包含多个定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '[attribute~="value1"][attribute~="value2"]')))

元素属性值开始定位:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '[attribute^="value"]')))

以上是常用selenium的基本定位的方法,后面持续更新具体结合实际操作用法

相关文章:

Python的web自动化学习(四)Selenium的显性等待(元素定位)

引言&#xff1a; Selenium的显性等待&#xff0c;其常用的定位方法介绍&#xff0c;后面持续更细具体用法 示例如下&#xff1a; <input type"text" class"s_ipt" name"wd" id"kw" maxlength"100" autocomplete"…...

X3DAudio1_7.dll是什么,解决计算机找不到X3DAudio1_7.dll文件的方法

作为一位程序员&#xff0c;我深知x3daudio1_7.dll丢失对电脑用户的影响。这个文件是DirectX的一个组件&#xff0c;它负责处理音频输出和输入。当这个文件丢失时&#xff0c;可能会导致电脑无法正常播放音频&#xff0c;甚至出现蓝屏等问题。那么&#xff0c;面对这个问题&…...

【Python】海龟图turtle.color() 方法有关RGB颜色设置详解

在Turtle模块中&#xff0c;turtle.color()函数用于设置画笔和填充颜色&#xff0c;你可以使用RGB颜色码作为参数。RGB颜色码由三个数字组成&#xff0c;分别代表红色&#xff08;R&#xff09;&#xff0c;绿色&#xff08;G&#xff09;和蓝色&#xff08;B&#xff09;的分量…...

中科院上高院,协鑫,和数“能源数字化智能管控”合作项目开启

10月27日&#xff0c;上海和数软件有限公司与协鑫综合能源服务有限公司、中国科学院上海高等研究院签署了《关于“能源数字化智能管控”开发与应用框架合作协议》。 这也标志着新疆协鑫智慧能源有限公司数字化智能提升项目——数字孪生项目正式启动。 根据协议&#xff0c;三方…...

在Mac上安装MongoDB 5.0

MongoDB 5.0安装 1、环境描述 操作系统&#xff1a;macOS 14.0 (23A344) 2、安装MongoDB 2.1、tar解压包安装 下载地址&#xff1a;Download MongoDB Community Server | MongoDB 创建一个目录&#xff0c;以便数据库将文件放入其中。&#xff08;默认情况下&#xff0c;数据…...

手把手教你如何实现TNAS与云盘之间的无缝同步技巧

嘿&#xff0c;铁粉们&#xff01; 云盘的下载速度总是让我们抓耳挠腮 数据安全隐私问题让人担心不已 但在购入NAS之前 众多数据存放在云盘里 同时也想把NAS的数据备份在云盘里 实现备份321法则&#xff1f; 不用烦恼 铁威马来帮忙 无需其他多余操作 只要下载CloudSyn…...

【约会云栖】从初中至大学,我见证了科技变革的历程。

前言 提起阿里云开发者大会&#xff0c; 你一定会觉得陌生&#xff1b;但提起云栖大会&#xff0c;你又会耳熟能详。实际上&#xff0c;云栖大会的前身就是阿里云开发者大会&#xff0c;2015年&#xff0c;它永久落户在杭州市西湖区云栖小镇。 2023年10月31日至11月2日&#xf…...

【MySQL索引与优化篇】索引优化与查询优化

索引优化与查询优化 文章目录 索引优化与查询优化1. 概述2. 索引失效案例3. 关联查询优化3.1 Join语句原理3.2 Simple Nested-Loop Join&#xff08;简单嵌套循环连接&#xff09;3.3 Index Nested-Loop Join&#xff08;索引嵌套循环连接&#xff09;3.4 Block Nested-Loop Jo…...

DevChat:VSCode中基于大模型的AI智能编程助手

#AI编程助手哪家好&#xff1f;DevChat“真”好用# 文章目录 1. 前言2. 安装2.1 注册新用户2.2 在VSCode中安装DevChat插件2.3 设置Access Key 3. 实战使用4. 总结 1. 前言 DevChat是由Merico公司精心打造的AI智能编程助手。它利用了最先进的大语言模型技术&#xff0c;像人类…...

Scrum master的职责

首先&#xff0c;Scrum master负责建立Scrum团队。同时Scrum master要帮助团队&#xff08;甚至大到公司&#xff09;中的每个成员理解Scrum理论和实践。 Scrum master还需要有很强的软技能&#xff0c;用于指导Scrum团队。Scrum master要对Scrum团队的成功负责任&#xff0c;…...

数据结构:算法(特性,时间复杂度,空间复杂度)

目录 1.算法的概念2.算法的特性1.有穷性2.确定性3.可行性4.输入5.输出 3.好算法的特质1.正确性2.可读性3.健壮性4.高效率与低存储需求 4.算法的时间复杂度1.事后统计的问题2.复杂度表示的计算1.加法规则2.乘法规则3.常见函数数量级比较 5.算法的空间复杂度1.程序的内存需求2.例…...

SaaS 出海,如何搭建国际化服务体系?(一)

防噎指南&#xff1a;这可能是你看到的干货含量最高的 SaaS 出海经验分享&#xff0c;请准备好水杯&#xff0c;放肆食用&#xff08;XD。 当越来越多中国 SaaS 企业选择开启「国际化」副本&#xff0c;出海便俨然成为国内 SaaS 的新角斗场。 LigaAI 观察到&#xff0c;出海浪…...

数据结构与算法-(7)---栈的应用拓展-前缀表达式转换+求值

&#x1f308;write in front&#x1f308; &#x1f9f8;大家好&#xff0c;我是Aileen&#x1f9f8;.希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流. &#x1f194;本文由Aileen_0v0&#x1f9f8; 原创 CSDN首发&#x1f412; 如…...

泛型的使用

泛型是一种Java编程语法&#xff0c;它允许我们编写支持多种数据类型的通用类、方法和接口。使用泛型可以使代码更通用、更灵活、更健壮&#xff0c;并提高代码的重用性。 在Java中&#xff0c;泛型的语法使用尖括号<>和类型参数来定义。例如&#xff0c;我们可以定义一…...

docker导致远程主机无法访问,docker网段冲突导致主机网络异常无法访问

背景&#xff1a; 公司分配的虚拟机是172网段的&#xff0c;在上面部署了docker、docker-compose、mysql、redis,程序用docker-compose管理&#xff0c;也平稳运行了一个多周&#xff0c;某天用FinalShell连主机重启docker容器&#xff0c;忽然断开连接&#xff0c;然后虚拟机就…...

Python的web自动化学习(三)Selenium的显性、隐形等待

引言&#xff1a; WebDriver的显性等待和隐形等待是用于在测试过程中等待元素加载或操作完成的两种等待方式。了解此两种方式是为后面自动化找到适合的方法去运用 显性等待&#xff08;Explicit Wait&#xff09; 显性等待是通过使用WebDriverWait类和ExpectedConditions类来…...

Linux--文件操作

1.什么是文件 对于文件来说&#xff0c;文件文件内容文件属性&#xff1b;对于文件来说&#xff0c;只有两种操作&#xff0c;对内容的修改和对文件属性的修改&#xff0c;这就是文件的范畴。 对于存放在磁盘上的文件&#xff0c;我们需要通过进程来进行访问&#xff0c;访问文…...

硬件知识积累 RS422接口

1. RS422 基本介绍 EIA-422&#xff08;过去称为RS-422&#xff09;是一系列的规定采用4线&#xff0c;全双工&#xff0c;差分传输&#xff0c;多点通信的数据传输协议。它采用平衡传输采用单向/非可逆&#xff0c;有使能端或没有使能端的传输线。和RS-485不同的是EIA-422不允…...

项目经验分享|openGauss 陈贤文:受益于开源,回馈于开源

开源之夏 项目经验分享 2023 #08 # 关于 openGauss 社区 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许可证v2发行。openGauss内核深度融合华为在数据库领域多年的经验&#xff0c;结合企业级场景需求&#xff0c;持续构建竞争力特性。同时openGauss也是…...

实时检测并识别视频中的汽车车牌

对于基于摄像头监控的安全系统来说,识别汽车牌照是一项非常重要的任务。我们可以使用一些计算机视觉技术从图像中提取车牌,然后我们可以使用光学字符识别来识别车牌号码。在这里,我将引导您完成此任务的整个过程。 要求: import cv2import numpy as npfrom skimage impor…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...