汇总selenium利用xpath等找网页节点的方法(二)

此系列第一篇参考链接汇总selenium利用xpath等找网页节点的方法_小小爬虾的博客-CSDN博客

首先,所有的查找都可以使用driver.find_element(By.XPATH,"//button/spantext()='登录' ")样式。

下面开始本篇,构建一个login_2.html。

复制代码
<button onclick="alert('你点击了按钮')" data-var="loginBtn" 
        data-type="click_navMembership" data-path="sign in" 
        class="nav-btn p0-sm body-3 u-bold ml2-sm mr2-sm" 
        data-pre="ILink" myname="prev_12345678">
    <span>登录</span>
</button>
<a href="http://www.baidu.com">百度搜索</a>

一、利用节点某个属性的值的部分内容进行定位,主要是利用substring函数

复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

driver = webdriver.Chrome()
driver.get('D:\\LC\\PycharmProjects\\xpath_css_dingwei\\login_2.html')
#某个属性的值的指定部分,如myname="prev_12345678"中,只要求通过prev来定位(因为实际中后面的一串数字会随机变动)
#substring的作用是:从第X个字符开始的X个字符所构成的字符串
button = WebDriverWait(driver, 5).until(
    EC.element_to_be_clickable((By.XPATH, "//button[substring(@myname,1,4)='prev']"))
)

button.click()
time.sleep(5)
driver.quit()

二、利用节点某个属性的值的前面部分进行定位

复制代码
#substring-before,定位指定字符(如_)之前内容等于XX值的节点
button = WebDriverWait(driver, 5).until(
    EC.element_to_be_clickable((By.XPATH, "//button[substring-before(@myname,'_')='prev']"))
)

同样,还有后面部分进行定位

复制代码
#substring-after,定位_之后内容等于XX值的节点
相关推荐
DrMaker7 小时前
【无标题】
软件测试·python·测试工具·pyqt
努力的lpp8 小时前
渗透主流工具完整参数手册(sqlmap、Nmap、Hydra、Dirsearch、Xray)
javascript·网络协议·测试工具·安全·http·工具
小白学大数据21 小时前
线上故障急救:依托 OpenClaw 日志排查 403 和 503 问题
爬虫·python·selenium·数据分析
PhotonixBay1 天前
共聚焦显微镜测量铜导体表面粗糙度
测试工具·制造
糖果店的幽灵1 天前
AI 驱动 Selenium 测试框架最佳实践:从传统自动化到智能体测试
人工智能·selenium·自动化
cfm_29141 天前
JVM垃圾收集算法与收集器深度解析
jvm·测试工具·算法·性能优化
Luminbox紫创测控1 天前
金属卤素灯工作原理与汽车零部件老化测试应用
测试工具·汽车·安全性测试·测试标准
Maydaycxc1 天前
Python 实现 RPA + AI 自动化:大模型 OCR + 网页操作完整源码实战
人工智能·python·opencv·selenium·自动化·ocr·rpa
赵大大宝1 天前
Selenium 从入门到精通:自动化测试与爬虫实战全攻略
爬虫·selenium·测试工具
zhonghaoxincekj1 天前
基于 168MHz MCU 的直流继电器全参数自动化测试方案解析
经验分享·功能测试·科技·学习·测试工具·创业创新·制造