Python的web自动化学习(五)Selenium的隐式等待(元素定位)

news2024/12/26 21:45:24

引言:
WebDriver隐式等待是一种全局性的等待方式,它会在查找元素时设置一个固定的等待时间。当使用隐式等待时,WebDriver会在查找元素时等待一段时间,如果在等待时间内找到了元素,则立即执行下一步操作;如果超过等待时间仍未找到元素,则抛出NoSuchElementException异常。

其元素定位8种方法

在这里插入图片描述

1.通过id或name定位

<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
  #通过元素所带的id和name属性对元素定位:
brower.find_element_by_id("kw")
brower.find_element_by_name("wd")

2.通过class name或tag name定位

<div class="jstEditor">
<textarea cols="60" rows="10" accesskey="e" class="wiki-edit" name="issue[description]" id="issue_description">
</textarea>
</div>

通过元素中带的class属性定位
brower.find_element_by_class_name("iki-edit")

通过元素中的tag标签定位,这种定位方式极不靠谱,不推荐采取此种方式。
brower.find_element_by_tag_name("div")

附加说明,如果class属性含有空格,那么取其中一个不重复的字段就可以了,例子:
<a title="新建版本" tabindex="200" class="icon-only icon-add" data-remote="true" data-method="get" href="/projects/bk_community/versions/new">新建版本</a>

其中class的属性值为“icon-only icon-add”,取其中“icon-only”、“ icon-add”都可以,但最好是取其中唯一的。
brower.find_element_by_class_name("icon-add")

3.通过link text和partial link text定位

<a href="http://news.baidu.com" target="_blank" class="mnav">新闻</a>
通过text link定位元素
brower.find_element_by_link_text("新闻")

通过partial link text定位元素,当文字链接很长时,可以通过此方式取其中一部分,只要取的部分可以作为唯一标识。
 
brower.find_element_by_partial_link_text("新")

4.xpath定位

此种定位方式需知晓xpath路径,通过火狐浏览器就可以知道,具体如何操作,可参考我的另一篇博文
 
https://blog.csdn.net/qq_30990097/article/details/81325681
 
调用的方法为:
 
brower.find_element_by_xpath("/html/body/div[1]/div/div[2]/ul/li[2]")
也可以通过相对路径自行填写,例如:
 
//*[@id="su"]/form/span/input              #通过上三级目录的id属性定位
 
当然也可以通过某一级的name属性定位。

5.CSS定位

css定位有点麻烦,方法很多。以百度输入框html代码为例:
 
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
定义浏览器
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")

6.通过id或class属性定位,方法见代码注释

#css通过id属性定位,用#号表示id属性

browser.find_element_by_css_selector("#kw").send_keys("css通过id属性定位")

#css通过class属性定位,用.表示class属性

browser.find_element_by_css_selector(".s_ipt").clear()

7.通过标签定位

#css通过标签属性定位,无任何标识符,最好加上一个固定属性,否则会出错

browser.find_element_by_css_selector("input[class=s_ipt]").send_keys("css通过标签属性定位")

browser.find_element_by_css_selector("input#kw").send_keys("css通过标签属性定位")

通过其他属性定位

#css通过其他属性定位

browser.find_element_by_css_selector("[name='wd']").send_keys("css通过name属性定位")

browser.find_element_by_css_selector("[autocomplete='off']").clear()

通过css层级关系定位

还是以百度的输入框html代码为示例:

定位代码:

#css层级关系

browser.find_element_by_css_selector("form#form>span>input").send_keys("通过层级定位")

browser.find_element_by_css_selector("form.fm>span>input").clear()

8. 通过css索引定位

示例html代码:

定位代码:

#通过css索引定位

browser.find_element_by_css_selector("select.pagination-page-list>option:nth-child(1)").click()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1152941.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

倾斜摄影三维模型的根节点合并注意事项浅析

倾斜摄影三维模型的根节点合并注意事项浅析 倾斜摄影三维模型的根节点合并是构建高精度、真实感和稳定性的三维模型的关键步骤之一。在进行根节点合并时&#xff0c;需要注意以下几个重要的事项&#xff0c;以确保合并的准确性和可靠性。 首先&#xff0c;准确的相机标定是进行…

5000元高端投影仪双十一怎么选?极米H6 4K高亮定焦版成为首选

随着人们对生活品质越来越高的追求&#xff0c;更多的年轻人开始选择以投影仪取代传统电视。但当下国内外市场上的投影仪品牌和型号众多&#xff0c;如果预算在5000元左右&#xff0c;应该选择哪一款投影仪呢&#xff1f;大家如果不知如何选择&#xff0c;不妨试试极米科技近期…

Shadingsphere proxy 启动报错 Windows

Exception in thread "main" java.lang.NoClassDefFoundError 本来打算在本地电脑测试一下proxy的功能&#xff0c;使用的二进制安装包&#xff0c;没想到怎么都启动不起来&#xff0c;一直报找不到某个类的错误。我还以为是自身的配置有问题&#xff0c;等我copy了…

HCIE怎么系统性学习?这份HCIE学习路线帮你解决

华为认证体系覆盖ICT行业十一个技术领域共十三个技术方向的认证&#xff0c;今天我们分享的是其中最热门的数据通信方向的HCIE学习路线。 HCIE是华为认证体系中最高级别的ICT技术认证 &#xff0c;旨在打造高含金量的专家级认证&#xff0c;为技术融合背景下的ICT产业提供新的能…

淘宝价格监控-电商数据采集分析

一、什么是淘宝商品数据采集&#xff1f; 淘宝商品数据采集&#xff0c;顾名思义&#xff0c;就是通过技术手段对全网电商平台上的商品价格信息进行抓取并保存。通过将收集到的这些价格信息进行分析处理后得到该商品的成交价、折扣率等关键属性指标&#xff0c;从而为卖家提供…

C9对接板总成的核心组成部分及各自的应用场景

格雷希尔GripSeal针对一些新能源汽车行业设备集成商和终端客户的测试需求&#xff0c;逐步完善C9对接板总成的各个组成部分&#xff0c;为各种测试需求如&#xff1a;EOL测试、DCR测试、气密性测试等提供灵活的多品种共线方案。   C9对接板总成的构成图 我们的C9对接板总成的…

批量拍摄剪辑短视频,这几个实用又简单的拍摄技巧可以收藏学习

现在越来越多的朋友都当起了视频博主&#xff0c;自己来拍短视频&#xff0c;但说来简单&#xff0c;到了拍摄的时候&#xff0c;却有些无从下手&#xff0c;直接拿起手机就拍吗&#xff1f;是不是太平淡了&#xff1f;可自己又不会专业的拍摄技巧啊~ 今天来分享4个简单的拍摄…

基于本体的军事术语知识图谱构建方法

源自&#xff1a; 智汇杰瑞 “人工智能技术与咨询” 发布 摘要 1 军事术语知识图谱构建流程 ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ 图1 军事术语知识图谱构建流程 2 军事术语本体构建 2.1 军事术语数据结构分析 2.2 军事术语本体设计 ※ ※ ※ ※ ※ ※ ※ ※…

【原创】java+swing+mysql志愿者管理系统设计与实现

摘要&#xff1a; 志愿者管理系统是一个用于管理志愿者以及活动报名的系统&#xff0c;提高志愿者管理的效率&#xff0c;同时为志愿者提供更好的服务和体验。本文主要介绍如何使用javaswingmysql去实现一个志愿者管理系统。 功能分析&#xff1a; 系统主要提供给管理员和志…

MySQL -- 表的增删查改

MySQL – 表的增删查改 文章目录 MySQL -- 表的增删查改一、Create创建1.插入数据2.插入否则更新3.替换 二、Retrieve查找1.select列1.1.全列查询1.2.指定列查询1.3.查询字段为表达式1.4.为查询结果指定别名1.5.结果去重 2.where条件2.1.英语不及格的同学&#xff08;英语<6…

视频内容不错为什么数据不好?批量制作优质视频的软件推荐

很多时候&#xff0c;在别人账号上爆了的内容&#xff0c;我们做了复刻发布后&#xff0c;却依旧没有很好的流量。一般来说&#xff0c;造成这个问题的原因很可能是没有做好运营或者SEO优化。 下面让我们来具体看看 1、没有做好运营 账号与流量是需要运营的&#xff0c;即便…

Pytorch 文本情感分类案例

一共六个脚本,分别是: ①generateDictionary.py用于生成词典 ②datasets.py定义了数据集加载的方法 ③models.py定义了网络模型 ④configs.py配置一些参数 ⑤run_train.py训练模型 ⑥run_test.py测试模型 数据集https://download.csdn.net/download/Victor_Li_/88486959?spm1…

可视化文件编辑与SSH传输神器WinSCP如何公网远程访问本地服务器

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 可视化文件编辑与SSH传输神器WinSCP如何公网远程本地服务器 文章目录 可视化文件编辑与SSH传输神…

如何在 Photoshop 中使用污点修复画笔

学习污点修复画笔工具的基础知识&#xff0c;以及如何使用它来修复、平滑和删除图像中不需要的部分 1.如何在 Photoshop 中使用污点修复画笔 步骤1 在 Photoshop 中使用污点修复画笔的方法有很多。今天&#xff0c;让我们用它来去除这只手臂上的一些较小的纹身。 步骤2 在我…

在科技展厅设计中,如何通过空间规划来突出展品和主题?

数字多媒体技术在各行业内的广泛应用&#xff0c;使内容展览展示技术得到了更新&#xff0c;尤其是在科技展厅设计中&#xff0c;更是将各类多媒体互动装置的优势发挥到了极致&#xff0c;为观众提供现代化的感官体验&#xff0c;而这其中有效的空间规划对于现代化科技展厅的效…

【开发日记】必须记录一下困扰我两天的问题 MyBatisPlus适配达梦insert时提示:无效的列

【需求】 项目ORM框架使用的是MyBatisPlus&#xff0c;数据库原来使用的是MySQL&#xff0c;现在需要适配达梦。 【问题】 项目ORM框架使用的是MyBatisPlus&#xff0c;数据库原来使用的是MySQL&#xff0c;现在需要适配达梦数据库。 在适配过程中查询、更新、删除都没有问题…

LeetCode刷题---找出字符串中第一个匹配项的下标(Java实现KMP算法)

朴素算法 朴素算法是用来解决字符串匹配的问题的&#xff0c;现有主串aaaab和子串aab,如果使用朴素算法解决该问题&#xff0c;它首先会将主串的第一个字符和子串的第一个字符进行比较&#xff0c;如果主串和子串第一个字符相同&#xff0c;则比较第二个字符&#xff0c;依次往…

基于springboot鞋包商城-计算机毕设 附源码 28653

springboot鞋包商城 摘 要 鞋包商城采用B/S结构、java开发语言、以及Mysql数据库等技术。系统主要分为管理员和用户及卖家三部分&#xff0c;管理员管理主要功能包括&#xff1a;首页、网站管理&#xff08;轮播图、网站公告&#xff09;、人员管理&#xff08;管理员、卖家、…

KT6368A蓝牙芯片的4脚也就是蓝牙天线脚对地短路了呢?是不是坏了

一、问题简介 KT6368A芯片的4脚&#xff0c;也就是蓝牙天线脚&#xff0c;万用表测量对地短路了呢&#xff1f;是不是芯片坏掉了&#xff0c;能不能重新寄样品给我。 详细说明 首先&#xff0c;芯片没有坏&#xff0c;遇到自己不懂的地方&#xff0c;不要轻易的去怀疑。 而是…

ZKP7.3 Linear-time encodable code based on expanders

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 7: Polynomial Commitments Based on Error-correcting Codes (Yupeng Zhang) 7.3 Linear-time encodable code based on expanders SNARKs with linear prover time Linear-time encodable code [Spielman’96][Druk-Ishai…