Selenium相对定位

news2024/9/19 9:32:06

测试网站:Web form

相对定位的方法:

  • above():定位基准元素上方的元素
  • below():定位基准元素下方的元素
  • to_left_of():定位基准元素左侧的元素
  • to_right_of():定位基准元素右侧的元素
  • near() :定位基准元素附近50个像素以内的元素

其中上下还能和左右组合进行链式相对定位,如locate_with().below().to_right_of()

import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.relative_locator import locate_with

driver = webdriver.Chrome()
driver.get("https://www.selenium.dev/selenium/web/web-form.html")
# 基准元素
refer_element = driver.find_element(By.NAME, "my-password")

# 定位到Text input输入框,并输入Selenium
element_above = driver.find_element(locate_with(By.ID, "my-text-id").above(refer_element))
element_above.send_keys("Selenium")
time.sleep(5)

# 定位到Disabled input框,并获取文本内容
element_below = driver.find_element(locate_with(By.NAME, "my-disabled").below(refer_element))
print(element_below.get_attribute("placeholder"))


# 定位到Default checkbox,并勾选
element_checkbox = driver.find_element(locate_with(By.ID, "my-check-2").below(refer_element))
if not element_checkbox.is_selected():
    element_checkbox.click()   # 选中复选框
else:
    element_checkbox.click()   # 取消选中

element_near = driver.find_element(locate_with(By.CSS_SELECTOR, "textarea[name='my-textarea']").near(refer_element))
print(element_near.get_attribute("rows"))

time.sleep(5)
driver.quit()
# element_left = driver.find_element(locate_with(By.ID, "my-text-id").to_right_of(refer_element))

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

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

相关文章

Windows横向渗透

准备靶机windows:192.168.10.131 准备攻击机:192.168.10.130 1.用cs连接到了windows靶机 2.使用cs探测内网信息: 查看当前目标系统网络情况,确认目标系统所在内网网段为10段 3.使用cs的portscan功能对内网进行扫描 portscan 1…

aarch64环境安装minio

1.去官网查看最新版本 MinIO | 用于AI的S3 & Kubernetes原生对象存储 2.使用命令安装,采取wget和dnf安装 wget https://dl.min.io/server/minio/release/linux-arm64/archive/minio-20240113075303.0.0-1.aarch64.rpm -O minio.rpm sudo dnf install minio.rpm 注意点…

MATLAB学习日志DAY16

16.数组类型(1) 16.1多维数组 MATLAB 环境中的多维数组是具有多个下标的数组。创建多维数组的一种方法是调用具有多个参数的 zeros、ones、rand 或 randn。 R randn(3,4,5); 创建一个 345 数组,共包含 3*4*5 60 个正态分布的随机元素。…

springboot在加了mapper之后报错

springboot在加了mapper之后报错 最后发现是spring boot版本不兼容,spring-boot-starter-parent换成3.0.5之后可以了

大模型金九银十秋招:AI时代的就业新趋势,收藏我这篇就够了非常详细

随着人工智能技术的飞速发展,大模型(Large Models)在各个领域的应用日益广泛,从自然语言处理到图像识别,从自动驾驶到智能推荐系统,大模型正逐渐成为AI领域的新宠。在这个背景下,大模型的秋招&a…

ubuntu串口重命名助手x86_64电脑架构(秒速配好串口)(上)软件介绍

✨✨ Rqtz 个人主页 : 点击✨✨ 🎈PyQt系列专栏:点击🎈 🎈Qt智能车上位机专栏: 点击🎈 🎈Qt串口助手专栏:点击🎈 💫宗旨:共享IT之美,共创机器未来 目录 ​编辑 ​编辑 项目背景 相关参数…

基于Pytorch框架的深度学习densenet121神经网络鸟类行为识别分类系统源码

第一步:准备数据 5种鸟类行为数据:self.class_indict ["bowing_status", "grooming", "headdown", "vigilance_status", "walking"] ,总共有23790张图片,每个文件夹单独放一…

从零开始学习网络安全渗透测试之基础入门篇——(三)APP架构小程序H5+Vue语言Web封装原生开发Flutter

从零开始学习网络安全渗透测试之基础入门篇——(三) #APP架构&小程序&H5Vue语言&Web封装&原生开发&Flutter 确保App和小程序的安全性是移动应用开发中的重要环节。比如,代码混淆、数据加密、安全审计、权限管理、API安…

[240727] Qt Creator 14 发布 | AMD 推迟 Ryzen 9000芯片发布

目录 Qt Creator 14 发布Qt Creator 14 版本发布,带来一系列新功能和改进终端用户可通过命令行方式查看此新闻终端用户可通过命令行方式安装软件: AMD 推迟 Ryzen 9000芯片发布 Qt Creator 14 发布 Qt Creator 14 版本发布,带来一系列新功能…

IntelliJ IDEA 中安装 Groovy 插件 添加 Groovy SDK

一、在 IntelliJ IDEA 中安装 Groovy 插件可以按照以下步骤进行: 打开 IntelliJ IDEA: 启动 IntelliJ IDEA。 打开插件市场: 进入 File -> Settings(在 macOS 上是 IntelliJ IDEA -> Preferences)。在左侧菜单中…

信号、电源、网线、传感器防雷,SPD系列防雷器全覆盖!

信号、电源、网线、传感器防雷,SPD系列防雷器全覆盖! SPD 系列防雷器是一种安装于被保护设备一侧的产品,旨在保护电子设备免受雷击、电磁脉冲、过压过渡冲击等造成的设备损坏。该产品广泛应用于工业控制、安全监测、网络通讯、交通电压等行业…

高速板开源工程的学习(一)

泰山派NAS-原理图和PCB设计经验分享-塞塞哇 (saisaiwa.com) BGA扇出的时候千万小心,导线到焊盘的距离大于0.1MM,千万小心,不然会寄寄的,这个在设计规则里面可以设置: 这种就容易造成阻焊开窗的误判,是很不规范的&…

力扣第三十七题——解数独

内容介绍 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 数独…

《破解验证码:用Requests和Selenium实现模拟登录的终极指南》

两种模拟登录方式(图形验证码) 超级鹰 打码平台,用于识别验证码 requests模拟登录 from chaojiying import Chaojiying_Client import requests from requests import Session from lxml import etree #获取图片信息 def get_pic_info(img_name):chaojiying Ch…

贪心算法总结(2)

一、买卖股票的最佳时机 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int maxProfit(vector<int>& prices) {int miniINT_MAX;int ret0;for(int&price:prices){//遍历的时候&#xff0c;我们随时去更新最小的值&#xff0c;然后让每一位…

AI音乐大模型背后的技术突破、版权诉讼和资本蛋糕

音乐&#xff0c;对你来说&#xff0c;是什么&#xff1f; 音乐对于我们中的许多人来说&#xff0c;是生活中不可或缺的一部分。它不仅仅是娱乐&#xff0c;更是一种情感的表达和交流方式。音乐是一种语言&#xff0c;可以用来表达感受&#xff0c;描绘作曲家想要传达的某种情…

fatal: refusing to merge unrelated histories

出现本地仓库和远程仓库的代码合并不兼容问题&#xff0c;解决方法&#xff1a; 添加--allow-unrelated-histories&#xff0c;让git允许提交不关联的历史代码。 成功提交&#xff1a;

云计算概念以及与云服务的区别

1.云的概念 1.1 什么是云&#xff1f; “云”在计算机科学和信息技术领域通常指“云计算”&#xff0c;即通过互联网提供计算资源&#xff08;如服务器、存储、数据库、网络、软件、分析等&#xff09;的模式。用户可以按需访问和使用这些资源&#xff0c;而无需管理和维护实际…

抓包工具——wireshark的使用

​ 什么是wireshark wireshark是一个数据包捕捉程序。和linux下的tcpdump&#xff0c;以及sniffer&#xff0c;Fidder等软件功能类似。按理说&#xff0c;我们的计算机中的网卡设备只会将发给本机的数据包传输到上层进行解析&#xff0c;而其他的数据包会进行丢弃&#xff0c;…