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

当前位置:首页  >  IT问答库  >  零基础学软件测试

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

发布:cli 2026-05-01 09:08

推荐答案

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



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

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

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

from selenium import webdriver

# 就这一行,驱动自动管理
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
print(driver.title)
driver.quit()


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

安装只需要两条命令:

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倍。

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.presence_of_element_located((By.ID, "kw"))
)
element.send_keys("Selenium教程")


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

---

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



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

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

# 1. ID定位(最快最稳)
driver.find_element(By.ID, "username")

# 2. CSS选择器(灵活强大)
driver.find_element(By.CSS_SELECTOR, ".login-form input[type='text']")

# 3. XPath定位(万能但慢)
driver.find_element(By.XPATH, "//input[@placeholder='请输入用户名']")

# 4. 相对定位(Selenium 4 新特性,最优雅)
from selenium.webdriver.support.relative_locator import with_tag_name
password = driver.find_element(By.ID, "username").find_element(
with_tag_name("input").below(By.ID, "username")
)


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

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

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

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

---

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



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

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 test_baidu_search():
# 初始化浏览器
driver = webdriver.Chrome()
driver.maximize_window()

try:
# 打开百度首页
driver.get("https://www.baidu.com")

# 定位搜索框,输入关键词
search_box = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "kw"))
)
search_box.send_keys("软件测试" + Keys.ENTER)

# 验证搜索结果
WebDriverWait(driver, 10).until(
EC.title_contains("软件测试")
)

# 获取结果数量
results = driver.find_elements(By.CSS_SELECTOR, ".result.c-container")
assert len(results) > 0, "搜索结果为空"

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

finally:
driver.quit()

if __name__ == "__main__":
test_baidu_search()


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

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

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

---

05 常见坑与避坑指南



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

坑1:`ElementNotInteractableException` — 元素被遮挡
# 解决:用JS滚动到元素位置
driver.execute_script("arguments[0].scrollIntoView();", element)


坑2:`NoSuchElementException` — 元素还没加载出来
# 解决:用显式等待,别用 time.sleep
WebDriverWait(driver, 10).until(EC.visibility_of(element))


坑3:弹窗处理不当导致脚本中断
# 解决:切换到弹窗再操作
alert = driver.switch_to.alert
alert.accept() # 或 alert.dismiss()


坑4:iframe 里的元素定位不到
# 解决:先切入 iframe
driver.switch_to.frame("iframe_name")
# 操作完毕后切回主文档
driver.switch_to.default_content()


坑5:Chrome 版本升级后脚本失效
# 解决:升级 Selenium 到 4.6+,驱动自动匹配
pip install --upgrade selenium


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

---

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

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

测试自动化不是终点,是起点。跑通**个脚本的成就感,会推着你走完剩下的路。
最新问答资讯

01 unity用什么编程语言?unity学习难度大吗

学习 unity 语言
6020 人关注

02 python容易学吗?学好python有什么好处?

学习 python 工作 培训
5389 人关注

03 html是什么语言?html学习难吗?

学习 html 语言 可以
5062 人关注

04 c语言难学吗?c语言学好要多久?

语言 技术 学习
4733 人关注

06 学好平面设计要多久?报速成班靠谱吗?

平面 设计 学习 时间
4238 人关注

相关问题

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

1台机器模拟1000并发,你还在手动测接口?

测试文章标题

女生适合前端还是测试?

最重要的,是从发展方向来看,前端开发的发展方向是向深度和精度...

软件测试培训分享:零基础学软件测试怎么样?

很多人都想要转入到互联网行业,所以大部分都是零基础学员,大家...

零基础参加软件测试培训都学什么

软件测试这项技术对于零基础学员来说是非常友好的,它的门槛比较...

测一测
你知道多少IT梗