元素定位全攻略

Selenium 8 种常规定位方法 + JavaScript 定位,每种方法都配有 演示 · 练习 · 作业

9
种定位方式
27
学习入口
3
学习阶段

9 种元素定位方法

从最精准的 By.ID 到最灵活的 XPath / CSS / JS,循序渐进掌握

01

By.ID

find_element(By.ID, "id值")

通过元素的 id 属性定位,最精准、最推荐的定位方式。前提:页面元素必须有唯一的 id 属性值。

02

By.NAME

find_element(By.NAME, "name值")

通过元素的 name 属性定位,常用于表单元素(input/select/textarea)。注意:name 可能不唯一。

03

By.CLASS_NAME

find_element(By.CLASS_NAME, "类名")

通过元素的 class 属性定位,适合批量获取同类元素(需 find_elements)。多个 class 只能写一个。

04

By.TAG_NAME

find_element(By.TAG_NAME, "tag名")

通过 HTML 标签名定位(如 div、input、a、button)。页面中同标签元素很多,一般配合 find_elements 使用。

05

By.LINK_TEXT

find_element(By.LINK_TEXT, "完整文本")

专门定位 a 标签,通过链接的完整文本匹配。注意:必须精确匹配链接显示的全部文字。

06

By.PARTIAL_LINK_TEXT

find_element(By.PARTIAL_LINK_TEXT, "部分文本")

By.LINK_TEXT 的模糊版,只需匹配链接文本的一部分。适合链接文本较长、需要灵活匹配的场景。

07

By.XPATH

find_element(By.XPATH, "//div[@id='xx']")

最强大的定位方式,支持绝对路径、相对路径、属性匹配、层级遍历、文本匹配、轴定位等。万能但稍复杂。

08

By.CSS_SELECTOR

find_element(By.CSS_SELECTOR, "#id .class")

用 CSS 选择器语法定位元素,语法简洁、执行速度快。支持 id/#、class/.、属性 []、伪类等。

09

JavaScript 定位

execute_script("return document.querySelector(...)")

通过 execute_script 执行原生 JS 定位,可突破 Selenium 限制(如 Shadow DOM、动态 iframe 内元素),终极杀招。

综合:9 种定位一网打尽

把 8 种常规定位方法 + JS 定位放到一个页面,逐个模块实战练习、查看效果反馈