selenium4的相对定位

selenium4相对定位

Selenium
4新增了相对定位器,能帮助用户查找元素附近的其他元素。可用的相对定位器有above、below、toLeftOf、toRightOf、near。在Selenium
4中,find_element方法能够接受一个新方法withTagName,它将返回一个RelativeLocator(关联定位器)。下面来看一下新方法如何使用。Selenium
4使用JavaScript的getBoundingClientRect方法来查找关联元素。

这个方法会返回元素的属性,例如right、left、bottom、top。来看下面这个示例。假如我们有一个页面,如图

在这里插入图片描述

1)above方法

该方法用来返回指定元素上方的元素。例如,我们可以先定位到Password输入框,然后通过above方法返回Password元素上方的tag name="input"的元素。示例代码如下。

#from selenium.webdriver.support.relative_locator import with_tag_name
passwordField = driver.find_element(By.ID, "password")
emailAddressField = driver.find_element(with_tag_name("input").above(passwordField))

(2)below方法

该方法用来返回指定元素下方的元素。例如,我们可以先定位到Email Address文本框,然后通过below方法返回Email Address元素下方的tag name="input"的元素。示例代码如下。

#from selenium.webdriver.support.relative_locator import with_tag_name
emailAddressField = driver.find_element(By.ID, "email")
passwordField = driver.find_element(with_tag_name("input").below(emailAddressField))

(3)toLeftOf方法

该方法用来返回指定元素左侧的元素。例如,我们可以先定位到Submit按钮,然后通过toLeftOf方法来返回Submit元素左侧的tag name="button"的元素。示例代码如下。

#from selenium.webdriver.support.relative_locator import with_tag_name
submitButton = driver.find_element(By.ID, "submit")
cancelButton = driver.find_element(with_tag_name("button").toLeftOf(submitButton))

(4)toRightOf方法

该方法用来返回指定元素右侧的元素。例如,我们可以先定位到Cancel按钮,然后通过toRightOf方法返回Cancel元素右侧的tag name="button"的元素。示例代码如下。

//import static org.openqa.selenium.support.locators.RelativeLocator.withTagName;
WebElement cancelButton= driver.findElement(By.id("cancel"));
WebElement submitButton= driver.findElement(withTagName("button").toRightOf (cancelButton));

(5)near方法

该方法用来返回指定元素附近(最远50像素的距离)的元素。例如,我们可以先定位到Email Address元素,而该元素与下方文本框的距离小于50像素。因此,我们可以使用near方法来定位元素。示例代码如下。

//import static org.openqa.selenium.support.locators.RelativeLocator.withTagName;
WebElement emailAddressLabel= driver.findElement(By.id("lbl-email"));
WebElement emailAddressField = driver.findElement(withTagName("input").near (emailAddressLabel));

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《2023年DDoS攻击现状及趋势报告》

执行概要 与第一季度相比,2023年第二季度的DDoS攻击活动增长了387%。 电信公司遭受的攻击最为频繁,占总攻击量的50%,在2023年上半年发生了超过37,000次攻击;然而,在所有行业中,电信公司的攻击活动在同一时…

mac电脑总卡蓝屏是怎么回事,苹果电脑老卡蓝屏怎么办

电脑老卡蓝屏是比较常见的电脑故障之一,导致这一问题的出现很可能是电脑本身的硬件,或电脑上的驱动安装错误,没法运行,当然也不排除其他的一些因素。虽说电脑蓝屏是电脑几乎都会出现的小毛病,不足以致命,但…

Day19:信息打点-红蓝队自动化项目资产侦察武器库部署企查产权网络空间

目录 各类红蓝队优秀工具项目集合 自动化-武器库部署-F8x 自动化-网络空间-AsamF 自动化-企查信息-ENScan 自动化-综合架构-ARL&Nemo 思维导图 章节知识点 Web:语言/CMS/中间件/数据库/系统/WAF等 系统:操作系统/端口服务/网络环境/防火墙等 应…

一本书讲透ChatGPT,实现从理论到实践的跨越!大模型技术工程师必读

这里写目录标题 前言内容简介作者简介专家推荐读者对象目录直播预告 前言 OpenAI 在 2022 年 11 月推出了人工智能聊天应用—ChatGPT。它具有广泛的应用场景,在多项专业和学术基准测试中表现出的智力水平,不仅接近甚至有时超越了人类的平均水平。这使得 …

垃圾分类网站|基于Springboot框架+java+MYSQL数据库的垃圾分类网站开发设计与实现(可运行源码+数据库+文档)

目录 1.摘 要 2.系统结构设计 3.系统顺序图设计 4.数据库设计 5.系统详细设计 用户前台功能模块 管理员功能模块 垃圾分类管理员功能模块 论文参考 文末获取源码 1.摘 要 本论文主要论述了如何使用JAVA语言开发一个垃圾分类网站 ,本系统将严格按照软件开发…

探索直播美颜SDK背后的算法:如何实现高效的美颜处理?

直播中,美颜功能更是成为了吸引用户的一大利器,为了实现这一目标,各大直播平台纷纷推出了美颜功能,而直播美颜SDK背后的算法成为了实现这一功能的关键。 一、美颜算法的重要性 美颜算法在直播美颜SDK中扮演着至关重要的角色。它不…

isNaN和Number.isNaN()的区别

一句话概括: isNaN()会先尝试转换为数字,如果无法转换为数字则返回true,否则返回false Number.isNaN():直接检查一个值是否为NaN 示例如下: 对于isNaN() NaN直接就返回true "abc"是字符串且无法转换为数…

连锁经营如何降低财务成本和税务风险

连锁经营的财务是一个比较复杂的体系。连锁经营通过规模化运作,连锁企业可以享受采购、生产和销售方面的经济规模优势,从而降低采购成本、生产成本和运营成本。可以通过统一管理和监控各个门店的财务状况,实现资源的最优配置,减少…

如何单独设置cPanel的PHP扩展

我们在上周遇到购买Hostease的Linux虚拟主机客户网站页面需要使用mb_strlen函数。像这种需要特定PHP函数的设置需求,我们是可以单独在cPanel面板进行设置。 步骤 1:登录到 cPanel 打开您的 Web 浏览器,登录您的 cPanel 控制面板登录页面。 步…

Linux - 进程控制

1、进程创建 1.1、fork函数初识 在linux中fork函数时非常重要的函数&#xff0c;它从已存在进程中创建一个新进程。新进程为子进程&#xff0c;而原进程为父进程&#xff1b; #include <unistd.h> pid_t fork(void); 返回值&#xff1a;自进程中返回0&#xff0c;父进…

EC600模块通过AT指令接入阿里云物联网平台并发布属性

摘要&#xff1a;本文介绍一下如何通过EC600模块的AT指令&#xff0c;将设备属性值发送到阿里云物联网平台的方法。 这个模块供电可以是 5-16V 和电脑通过USB串口连接&#xff0c;4线即可。未来集成到自己的系统中的时候&#xff0c;可以直接发送指令即可。 使用的软件是FreeAT…

Claude3荣登榜首,亚马逊云科技为您提供先行体验!

Claude3荣登榜首&#xff0c;亚马逊云科技为您提供先行体验&#xff01; 个人简介前言抢先体验关于Amazon BedrockAmazon Bedrock 的功能 Claude3体验教程登录Amazon Bedrock试用体验管理权限详细操作步骤1.提交应用场景详细信息2.请求模型的访问权限3.请求成功&#xff0c;开始…

智慧合同管理平台:企业合同管理的数字化革新

在当今的商业环境中&#xff0c;合同管理已经成为企业运营中不可或缺的一环。传统的合同管理方式不仅耗时耗力&#xff0c;而且容易出错。为了解决这个问题&#xff0c;越来越多的企业开始转向使用智慧合同管理平台。本文将以道本科技智慧合同管理平台为例&#xff0c;详细介绍…

中航证券2024 AI智算时代已至,算力芯片加速升级

一、AI处史上最长繁荣期&#xff0c;算力国产化需求迫切 AI正处史上最长繁荣大周期 人工智能从1956 年被正式提出以来&#xff0c;经历了数十年的 发展历程。人工智能诞生初期&#xff0c;其研究主要分为三个流 派&#xff0c;即逻辑演绎、归纳统计和类脑计算。 人工智能研究的…

JasperReport指定自定义字体文件,解决中文不显示问题支持

原文链接&#xff1a;【JasperReports笔记05】JasperReport指定自定义字体文件&#xff0c;解决中文不显示问题支持Android_jasperreports导出pdf不显示中文-CSDN博客 目录 一、自定义字体文件 1.1、创建字体配置文件 1.2、创建fonts.xml字体文件 1.3、在Jasper Studio中添…

【STM32下UART协议的一些认识与使用方法】

STM32下UART协议的一些认识与使用方法 串口定义通用串行异步收发器 协议中相关的概念空闲位起始位数据位奇偶校验位三种校验方式BT接收数据的流程 停止位波特率总结 UART的三种工作方式UART控制器发送数据流程接收数据流程 UART初始化UART相关结构体和库函数 串口定义 通用串行…

计算机网络-物理层

物理层 基本概念传输媒体信道复用频分复用&#xff08;FDM&#xff09;时分复用&#xff08;TDM&#xff09;波分复用&#xff08;WDM&#xff09;码分复用&#xff08;CDM&#xff09; 宽带接入技术ADSL技术光纤同轴混合网(HFC网)FTTx技术 数据通信常识 上次我们已经大致学习了…

基于yolov5的山羊姿态检测系统,可进行图像目标检测,也可进行视屏和摄像检测(pytorch框架)【python源码+UI界面+功能源码详解】

功能演示&#xff1a; 基于yolov5的山羊姿态检测系统&#xff0c;系统既能够实现图像检测&#xff0c;也可以进行视屏和摄像实时检测_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于yolov5的山羊姿态检测系统是在pytorch框架下实现的&#xff0c;这是一个完整的项目…

AndroidStudio连不上adb报错ADB Connection Error

之前笔者一直通过AndroidStudio来看日志&#xff0c;也一直用的一套自己的SDK&#xff0c;用了好几年了。 但是突然有一天&#xff0c;AndroidStudio启动后就弹出警告窗&#xff1a;ADB Connection Error&#xff0c;如下&#xff1a; 在Event Log面板还持续性的输出&#x…

论文目录3:大模型时代(2023+)

1 instruction tuning & in context learning 论文名称来源主要内容Finetuned Language Models Are Zero-Shot Learners2021 机器学习笔记&#xff1a;李宏毅ChatGPT Finetune VS Prompt_UQI-LIUWJ的博客-CSDN博客 早期做instruction tuning的work MetaICL: Learning to …