练习 By.PARTIAL_LINK_TEXT 的 Selenium 定位方法 — 独立专项练习页
本次作业练习 Selenium By.PARTIAL_LINK_TEXT 定位:当链接文本很长或含动态前缀/后缀时可用,但需注意可能匹配到多个。请完成以下练习,理解模糊链接定位的取舍。
当链接文本很长或含有动态前缀/后缀时,可使用 PARTIAL_LINK_TEXT 通过子串匹配。
By.PARTIAL_LINK_TEXT 用子串模糊匹配,但如果匹配到多个链接,Selenium 会静默返回第一个 —— 不报错!这是 PARTIAL 最坑的地方。下面三组链接,请思考用 By.PARTIAL_LINK_TEXT("入门") 分别会命中谁?
① 入门系列(三个都含"入门")—— PARTIAL("入门") 会命中 第一个!
② 下载系列(两个都含"下载")—— PARTIAL("下载") 命中 第一个!
③ 长链接关键词 —— 这才是 PARTIAL 的真正价值!全文匹配太啰嗦:
初学者容易误以为"模糊匹配 = 不区分大小写" —— 错!By.PARTIAL_LINK_TEXT 和 LINK_TEXT 一样区分大小写。同时,PARTIAL 最适合匹配含动态前缀/后缀的链接(这正是它存在的理由)。
⚠️ 大小写敏感对照 —— PARTIAL("Login")、PARTIAL("login")、PARTIAL("LOGIN") 各命中谁?
✅ PARTIAL 真正用武之地 —— 动态文本链接(时间戳/用户名变化,核心关键字不变):
和 LINK_TEXT 完全一样 —— PARTIAL 只管 <a> 标签。<button> 和 <span> 无论长得多像链接,PARTIAL 都找不到!
⚠️ 真 <button> —— PARTIAL("提交") 会抛 NoSuchElementException
✅ CSS 伪装按钮(本质是 <a>)—— PARTIAL("购买") 能成功!
同一组链接,对比两种定位方式的匹配范围。最后一行的空字符串陷阱务必避开!
对照链接组 —— 试试 LINK_TEXT 和 PARTIAL 分别能命中谁?
💀 空字符串陷阱 —— PARTIAL("") 匹配页面上所有链接,悄悄取第一个!
本区域用于展示:使用 By.PARTIAL_LINK_TEXT(链接文本子串模糊匹配)点击超链接后,记录匹配命中的目标链接与关键字。
当前尚无操作记录
请尝试:① 用关键词「入门」「下载」「报名」模糊匹配上方链接并点击 ② 观察每次命中的是第几条链接。
本日志仅展示效果,方便你在 Selenium 脚本里用 By.ID, "action-log" 读取后断言操作是否成功执行。