Selenium動態元素定位

動態元素定位方法

一:使用CSS選擇器

通過部分匹配操作符定位動態屬性中的固定部分。*=(包含),^=(開頭),$=(結尾)。

/* 匹配id前綴為user_的元素 */
css=div[id^="user_"]/* 匹配class包含item-box-的元素 */
css=div[class*="item-box-"]/* 匹配href屬性以.pdf結尾的元素 */
css=a[href$=".pdf"]

二:使用XPath表達式

利用XPath函數如contains()starts-with()substring()處理動態屬性。

<!-- 匹配class包含dynamic-class的元素 -->
xpath=//div[contains(@class, 'dynamic-class')]<!-- 匹配id前綴為search_的元素 -->
xpath=//input[starts-with(@id, 'search_')]<!-- 匹配src屬性以_img結尾的元素 -->
xpath=//img[substring(@src, string-length(@src)-3) = '_img']

三:組合定位策略

當動態元素缺乏固定特征時,通過相鄰元素或上下文的固定屬性進行定位。

示例:動態div下的固定文本標簽

<div class="dynamic-123"><span>用戶名:</span><input type="text" id="dynamic-input-456"><input type="text2" id="dynamic-input-789">
</div>

定位輸入框

xpath=//span[text()='用戶名:']/following-sibling::input[2]解釋://span[text()='用戶名:']:先定位到文本為 "用戶名:" 的 <span> 元素
/following-sibling::input[2]:然后選取該 <span> 元素的第二個同級 <input> 元素

加油!你是最棒的!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/92925.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/92925.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/92925.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OBOO鷗柏丨115寸商用屏/工業液晶顯示器招標投標核心標底參數要求

整機參數要求&#xff1a;商用液晶顯示器/工業LCD一體機/商業智能終端機/工業防爆顯示器/招標投標核心標底參數要求1、整機屏幕采用≥采用115英寸超高清原廠原包原裝工業LCD液晶屏面板&#xff1b;具有高色域&#xff0c;顯示動態視頻、web及3D動畫時&#xff0c;保障運動畫面流…

麻溜啟動Oracle實例demo

注意&#xff1a;鏡像非常大并且外網網絡過慢&#xff0c;可能得pull一天&#xff08;n次超時&#xff09;。。md后臺靜默pull命令&#xff1a; nohup docker pull container-registry.oracle.com/database/express:latest > pull.log 2>&1 & 啟動實例&#xff1…

應用監控工具Skywalking

目錄 Skywalking介紹 Skywalking架構 Skywalking安裝 Skywalking使用 Skywalking配置 Skywalking數據持久化 Skywalking告警 Skywalking介紹 Apache Skywalking是一個開源的應用性能監控&#xff08;Application Performance Monitoring&#xff0c;APM&#xff09;工具…

TCP服務建立的全流程詳解

TCP的服務監聽步驟&#xff08;等待客戶端連接前&#xff09;TCP 服務器通過以下步驟完成從初始化到等待客戶端連接&#xff0c;為后續的數據傳輸&#xff08;send()/recv()&#xff09;奠定了基礎一、創建套接字&#xff08;Socket&#xff09;作用&#xff1a;套接字是網絡通…

數據結構 雙鏈表與LinkedList

本節目標&#xff1a; 認識并且能夠實現一個雙鏈表認識LinkedList類并且知道如何去使用 1.雙鏈表 概念 在數據結構中&#xff0c;雙鏈表&#xff08;Doubly Linked List&#xff09; 是一種常見的線性數據結構&#xff0c;它由一系列節點組成&#xff0c;每個節點不僅包含數據…

如何解決 JetBrains IntelliJ IDEA 2024.2 和 2025.2 新版本區域選擇問題:key is invalid

如何解決 JetBrains IntelliJ IDEA 2024.2 和 2025.2 新版本區域選擇問題&#xff1a;key is invalid 在 JetBrains 發布的 IntelliJ IDEA、PyCharm 2024.2 和 2025.2 新版本中&#xff0c;增加了一個新的功能——區域選擇。在設置菜單中&#xff0c;你可以找到這一選項&#…

GSON 框架下百度天氣 JSON 數據轉 JavaBean 的實戰攻略

目錄 前言 一、百度天氣JSON 1、請求參數 2、返回參數 3、屬性映射 二、GSON屬性映射實戰 1、類對象映射 2、屬性字段映射 3、日期數據映射 三、天氣接口對象展示 1、接口調用 2、Java屬性打印輸出 四、總結 前言 在當今數字化時代&#xff0c;數據的高效處理與轉換…

NAS技術在縣級融媒體中心的架構設計與安全運維淺析

NAS技術在縣級融媒體中心的架構設計與安全運維淺析 ——原理剖析、應用實踐與防御體系建設作者&#xff1a;高級網絡安全工程師 吉林?鎮賚融媒 劉曉偉 最后更新&#xff1a;2025年8月 適用對象&#xff1a;媒體行業網絡安全從業者一、NAS技術核心原理剖析 1. 基礎架構 NAS&am…

CobaltStrike的搭建和使用

下載CobaltStrike環境建議使用jdk17&#xff0c;其他java版本有些功能可能無法使用通過網盤分享的文件&#xff1a;CS4.7key-mht.zip 鏈接: https://pan.baidu.com/s/1CRd1x4r6EIk14BD3UCLgxw?pwdevf4 提取碼: evf4將下載的文件分別放在服務器和 本地/kali 上 也就是服務器為…

【Altium designer】一鍵給多個器件添加參數

目的: 一鍵給N個元器件/Part添加參數和修改參數值,比如一鍵給多個電阻添加“備注”并賦予備注的內容為“不焊接”,或者更改“備注”的內容為“不焊接”或空。 背景: 剛入門用AD畫原理圖,因為原理圖的電阻、電容和芯片等等的冗余/兼容設計太多,增加備注不焊的元器件位號…

熟練掌握switch語句:技巧與運用

目錄 一、switch語句基礎 基本語法結構&#xff1a; 在C/C中&#xff1a; 注意事項&#xff1a; 二、if與switch語句對比 示例&#xff1a;計算整數除以3的余數 使用if語句實現&#xff1a; 使用switch語句實現&#xff1a; 三、break語句的作用 示例&#xff08;無br…

【03】廈門立林科技——立林科技 嵌入式 校招筆試,題目記錄及解析

廈門立林科技——立林科技 嵌入式 校招筆試&#xff0c;題目記錄及解析 1.下面的程序的輸出是&#xff08;&#xff09;。2.在頭文件中#ifndef/#define/#endif的作用是4.執行下面程序中的輸出語句后,輸出的結果是()6.在32位處理器上,運行如下程序后p的值為()。10.設有兩字符串“…

C++算法(數據結構)版

C算法&#xff08;數據結構&#xff09;版 有些題目不是完整的題目&#xff0c;如需查看完整的題目請移步到acwing的算法基礎課中 文章目錄C算法&#xff08;數據結構&#xff09;版單鏈表思路&#xff1a;雙鏈表思路&#xff1a;棧思路&#xff1a;隊列思路&#xff1a;單調棧…

算法訓練營DAY57 第十一章:圖論part07

prim算法精講 53. 尋寶&#xff08;第七期模擬筆試&#xff09; 題目描述&#xff1a; 在世界的某個區域&#xff0c;有一些分散的神秘島嶼&#xff0c;每個島嶼上都有一種珍稀的資源或者寶藏。國王打算在這些島嶼上建公路&#xff0c;方便運輸。 不同島嶼之間&#xff0c;…

最短路問題從入門到負權最短路

一&#xff0c;BFS層次最短路/*題目描述 題目描述 給出一個 N 個頂點 M 條邊的無向無權圖&#xff0c;頂點編號為 1~N。 問從頂點 1 開始&#xff0c;到其他每個點的最短路有幾條。 輸入格式 第一行包含 2 個正整數 N,M&#xff0c;為圖的頂點數與邊數。 接下來 M 行&#xff…

AI智能體小白入門指南

AI智能體小白入門指南 ——什么是AI智能體&#xff1f;它們如何工作&#xff1f; 一、AI智能體是什么&#xff1f; AI智能體&#xff08;AI Agent&#xff09;是能感知環境、自主決策并執行動作的人工智能系統。 類比理解&#xff1a;像一個“虛擬機器人”或“數字助手”&#…

《設計模式》策略模式

1.策略模式定義 策略模式&#xff08;Strategy Pattern&#xff09;是一種行為型設計模式&#xff0c;它定義了一組算法&#xff0c;將每個算法封裝起來&#xff0c;并使它們可以相互替換&#xff0c;從而讓算法的變化獨立于使用它的客戶&#xff08;Client&#xff09;。 換…

AWS DMS 深度解析:從遷移任務到復制任務 - 全流程指南與最佳實踐

AWS Database Migration Service (DMS) 是一項強大的云服務,用于在源數據庫和目標數據庫之間安全地遷移數據。其核心優勢在于支持幾乎零停機時間的遷移,這主要歸功于其“變更數據捕獲 (CDC)”功能。理解遷移任務 (Migration Task) 和復制任務 (Replication Task) 的關系與操作…

國企社招 | 中國郵政2025年社會招聘開啟

添加圖片注釋&#xff0c;不超過 140 字&#xff08;可選&#xff09; 添加圖片注釋&#xff0c;不超過 140 字&#xff08;可選&#xff09; 添加圖片注釋&#xff0c;不超過 140 字&#xff08;可選&#xff09; 原文鏈接&#xff1a;“郵”你“政”好 | 廣東郵政2025年社會…

linux添加自啟動

linux添加自啟動 配置步驟&#xff1a; 創建systemd服務文件 sudo nano /etc/systemd/system/tme-vod.service將下面artifact中的內容復制到該文件中。 [Unit] DescriptionTME VOD Service Afternetwork.target[Service] Typesimple Userroot Grouproot WorkingDirectory/data/…