练习 By.LINK_TEXT 的 Selenium 定位方法 — 独立专项练习页
本次作业练习 Selenium By.LINK_TEXT 定位:LINK_TEXT 必须完全匹配超链接可见文本。请完成以下任务,掌握精确链接定位的使用与局限。
LINK_TEXT 必须完全匹配超链接可见文字(区分大小写),常用于导航跳转。
本区域覆盖 By.LINK_TEXT 最常踩的三个坑:纯文本无图标最容易写定位;严格区分大小写("login" ≠ "Login");重名链接只返回第一个,多个同名"查看详情"要特别小心。
① 纯文本链接(无任何图标)—— 最干净的定位目标:
② 大小写对照 —— 试试 By.LINK_TEXT("login") 能命中谁?
③ 重名链接 —— 三个"查看详情"长得完全一样,By.LINK_TEXT 只会返回 第一个:
By.LINK_TEXT 只管 <a> 标签,和视觉外观无关。下面第一组是真 <button>(By.LINK_TEXT 报错),第二组是用 CSS 伪装成按钮的 <a>(By.LINK_TEXT 能成功),对照体会差异。
⚠️ 第一组:真 <button> —— By.LINK_TEXT("提交") 会抛 NoSuchElementException!
✅ 第二组:CSS 伪装按钮(本质是 <a>)—— By.LINK_TEXT("立即购买") 能成功!
第三组:普通带图标链接(对比用):
覆盖 By.LINK_TEXT 在真实项目里遇到的特殊形态:href="javascript:void(0)" 空跳转链接、pointer-events:none 禁用链接、以及页面自身的顶部导航栏也是现成的定位目标。
① href="javascript:void(0)" 空跳转链接 —— By.LINK_TEXT 不管 href 值,只认标签 + 文本:
② 禁用链接(pointer-events:none)—— By.LINK_TEXT 能匹配,但 .click() 会抛异常:
③ 顶部导航栏(本页现成的定位目标)—— 试试 driver.find_element(By.LINK_TEXT, "首页"):
本页顶部 7 个导航链接都是普通 <a>,可以直接拿来练:By.LINK_TEXT("首页")、By.LINK_TEXT("元素定位")、By.LINK_TEXT("测试工具")……(点击下面任一导航按钮跳转回来即可)
本区域用于展示:使用 By.LINK_TEXT(链接完整文本精确匹配)点击超链接后,记录具体点击到的链接与跳转目标。
当前尚无操作记录
请尝试:① 点击上方任意链接(精确完整匹配文本) ② 多次点击后观察展示区按顺序追加记录。
本日志仅展示效果,方便你在 Selenium 脚本里用 By.ID, "action-log" 读取后断言操作是否成功执行。