千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

当前位置:首页  >  零基础学IT  >  零基础学软件测试  > 2026年最强自动化测试入门:Selenium WebDriver 7天从零到跑通第一个脚本

2026年最强自动化测试入门:Selenium WebDriver 7天从零到跑通第一个脚本

来源:千锋教育
发布人:cli
时间: 2026-05-04 16:30:52 1777883452

01 环境搭建:90%的新手死在这一步

传统搭建 Selenium 环境的流程是这样的:装 Python → 装 Selenium → 查 Chrome 版本 → 下载对应 ChromeDriver → 配置环境变量 → 报错 → 换版本 → 再报错。

Before:手动下载 ChromeDriver,版本和浏览器不匹配,`SessionNotCreatedException` 刷屏。

After:Selenium 4.6+ 内置 `Selenium Manager`,自动下载和管理驱动,零配置启动。

```python

from selenium import webdriver

就这一行,驱动自动管理

driver = webdriver.Chrome()

driver.get("https://www.baidu.com")

print(driver.title)

driver.quit()

```

> 告别手动下载驱动的时代,把时间花在写测试上,不是花在配环境上。

安装只需要两条命令:

```bash

pip install selenium

pip install webdriver-manager # 备用方案

```

关键点:Python 版本选 3.10 以上,Selenium 选 4.20 以上。低版本缺少自动管理能力,会给自己挖坑。

---

02 八大核心操作:掌握这8个,覆盖80%的测试场景

Selenium 的本质是什么?就是用代码操控浏览器。它的所有操作归结为8类:

| 操作类型 | 方法 | 典型场景 |

|---------|------|---------|

| 元素定位 | `find_element` | 点击按钮、输入文本 |

| 文本输入 | `send_keys` | 登录表单、搜索框 |

| 点击操作 | `click` | 提交按钮、导航链接 |

| 获取信息 | `text` / `get_attribute` | 验证页面内容 |

| 等待机制 | `WebDriverWait` | 异步加载元素 |

| 切换窗口 | `switch_to.window` | 多标签页操作 |

| 执行JS | `execute_script` | 滚动页面、处理弹窗 |

| 截图保存 | `save_screenshot` | 测试失败的证据 |

Before:用 `time.sleep(5)` 硬等,测试慢得像蜗牛,还经常等不到位。

After:用 `WebDriverWait` 显式等待,元素一出现立刻执行,平均提速3倍。

```python

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

显式等待:最多等10秒,元素出现即继续

element = WebDriverWait(driver, 10).until(

EC.presenceofelement_located((By.ID, "kw"))

)

element.send_keys("Selenium教程")

```

> 等待不是浪费时间,等错了才是。

---

03 元素定位策略:从入门到精准打击

定位元素是 Selenium 测试的核心。8种定位方式,实战中真正常用的只有4种:

优先级排序:ID > CSS Selector > XPath > Class Name

```python

1. ID定位(最快最稳)

driver.find_element(By.ID, "username")

2. CSS选择器(灵活强大)

driver.findelement(By.CSSSELECTOR, ".login-form input[type='text']")

3. XPath定位(万能但慢)

driver.find_element(By.XPATH, "//input[@placeholder='请输入用户名']")

4. 相对定位(Selenium 4 新特性,最优雅)

from selenium.webdriver.support.relativelocator import withtag_name

password = driver.findelement(By.ID, "username").findelement(

withtagname("input").below(By.ID, "username")

)

```

Before:复制一整条 XPath,改一个字就挂,像玻璃做的。

After:用相对定位,元素关系变了也不怕,像橡皮做的。

实战建议:

  • 开发配合加 ID 属性,测试效率翻倍
  • 避免 `absolute XPath`(从 `/html/body/div[1]...` 开始的),页面结构一变全废
  • 善用浏览器 F12 的 "Copy selector" 快速获取

> 定位元素不是写代码,是读页面的思维。看懂结构,一行搞定。

---

04 第一个完整测试脚本:百度搜索实战

把前面学的串起来,写一个完整的测试案例:

```python

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

def testbaidusearch():

初始化浏览器

driver = webdriver.Chrome()

driver.maximize_window()

try:

打开百度首页

driver.get("https://www.baidu.com")

定位搜索框,输入关键词

search_box = WebDriverWait(driver, 10).until(

EC.presenceofelement_located((By.ID, "kw"))

)

searchbox.sendkeys("软件测试" + Keys.ENTER)

验证搜索结果

WebDriverWait(driver, 10).until(

EC.title_contains("软件测试")

)

获取结果数量

results = driver.findelements(By.CSSSELECTOR, ".result.c-container")

assert len(results) > 0, "搜索结果为空"

print(f"测试通过!找到 {len(results)} 条搜索结果")

finally:

driver.quit()

if name == "main":

testbaidusearch()

```

Before:手动打开浏览器,输入关键词,肉眼检查结果,一次只能测一条。

After:脚本自动执行,断言自动判断,跑100条用例只需要按回车。

> 代码是测试的复利。今天写一行,明天省一小时。

---

05 常见坑与避坑指南

踩坑不可怕,可怕的是同一个坑踩两次。以下是新手最常遇到的5个问题:

坑1:`ElementNotInteractableException` — 元素被遮挡

```python

解决:用JS滚动到元素位置

driver.execute_script("arguments[0].scrollIntoView();", element)

```

坑2:`NoSuchElementException` — 元素还没加载出来

```python

解决:用显式等待,别用 time.sleep

WebDriverWait(driver, 10).until(EC.visibility_of(element))

```

坑3:弹窗处理不当导致脚本中断

```python

解决:切换到弹窗再操作

alert = driver.switch_to.alert

alert.accept() # 或 alert.dismiss()

```

坑4:iframe 里的元素定位不到

```python

解决:先切入 iframe

driver.switchto.frame("iframename")

操作完毕后切回主文档

driver.switchto.defaultcontent()

```

坑5:Chrome 版本升级后脚本失效

```python

解决:升级 Selenium 到 4.6+,驱动自动匹配

pip install --upgrade selenium

```

> 经验不是用时间换的,是用错误堆出来的。每个报错信息都是通往正确的路标。

---

从环境搭建到脚本跑通,从元素定位到避坑指南。5个模块,覆盖了 Selenium 入门的全部核心知识。

下一步干什么?不要再看教程了。打开编辑器,对着你公司的项目,写第一个测试脚本。跑通的那一刻,你就已经超过了80%还在"准备学"的人。

测试自动化不是终点,是起点。跑通第一个脚本的成就感,会推着你走完剩下的路。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT