動態元素定位方法
一:使用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> 元素
加油!你是最棒的!