系统学习 By.TAG_NAME 的核心语法、实操示例与最佳实践
By.TAG_NAME 是 Selenium 中最基础的元素定位方式,通过 HTML 标签名(如 div、input、a、li)进行定位。标签名是 DOM 树的骨架,一个页面上同一种标签往往有成百上千个(比如 div、span),因此 By.TAG_NAME 几乎不可能单独用来定位某个特定元素。它的真正价值在于:配合 WebElement 缩小搜索范围 — 先定位到一个容器元素(如某个 ul 列表),再在这个范围内用 find_elements(By.TAG_NAME, 'li') 取出该容器下所有 li 子元素,实现层级查找。单独使用时,find_element(By.TAG_NAME, '标签名') 只返回 DOM 中第一个匹配元素(几乎永远不是你想要的那个);find_elements(By.TAG_NAME, '标签名') 返回页面上全部匹配元素的列表,需要自行遍历或按索引筛选。
driver.find_element(By.TAG_NAME, "h1")(匹配第一个h1标签元素)driver.find_element(By.TAG_NAME, "title")(匹配第一个title标签元素)driver.find_elements(By.TAG_NAME, "a")(获取所有a标签元素)driver.find_elements(By.TAG_NAME, "input")(获取所有input标签元素)driver.find_elements(By.TAG_NAME, "li")(获取所有li标签元素)| 商品图 | 商品名称 | 分类 | 价格 | 库存 | 操作 |
|---|---|---|---|---|---|
| iPhone 15 Pro Max | 手机数码 | ¥9,999 | 128 | ||
| MacBook Pro 14" | 家用电器 | ¥14,999 | 56 | ||
| AirPods Pro 2 | 手机数码 | ¥1,899 | 8 |
💡 使用 By.TAG_NAME, "table" 定位整个商品表格,用 "tr" 获取每行数据。
💡 使用 By.TAG_NAME, "img" 获取所有商品图片,用 "button" 批量点击编辑。
H1 - 一级标题
H2 - 二级标题
H3 - 三级标题
段落 1:第一个 p 标签,可用 find_element 定位或者用 find_elements 获取列表加上索引 0 定位。
段落 2:第二个 p 标签,可用 find_elements 获取列表加上索引 1 定位。
段落 3:第三个 p 标签,可用 find_elements 获取列表加上索引 2 定位。
| 序号 | 课程名称 | 标签名 | 说明 |
|---|---|---|---|
| 1 | Selenium 基础 | tr / td | 表格行与单元格 |
| 2 | 元素定位 | tr / td | 用 XPath 定位表格 |
| 3 | 元素操作 | tr / td | 表格操作场景 |
find_elements() 返回列表。