我的测试学习站TEST LEARNING HUB
开始学习
首页/精华文章/3. Web 自动化测试怎么入门

3. Web 自动化测试怎么入门

Web 自动化测试主要用于模拟用户在浏览器中的操作,比如打开页面、输入账号密码、点击按钮、选择下拉框、提交表单、校验页面结果。测试岗位面试中,Web 自动化常和 Selenium、元素定位、等待机制、PO 模式、数据驱动、失败截图、CI 集成一起被问到。入门 Web 自动化,不是先追求复杂框架,而是先理解浏览器、页面元素、定位方式、操作和断言。

很多同学学习 Web 自动化时,上来就搭框架,结果元素定位不稳定、等待不会写、用例经常失败。正确路径应该是:先会定位元素和操作页面,再理解等待和断言,再封装 Page Object,最后再做数据驱动、报告和持续集成。

一、Web 自动化适合测什么

Web 自动化适合稳定、重复、核心的页面流程。

常见场景:

  • 登录;
  • 注册;
  • 搜索;
  • 表单提交;
  • 订单创建;
  • 后台审核;
  • 权限菜单展示;
  • 文件上传下载;
  • 冒烟测试;
  • 回归测试。

不适合频繁变化、页面不稳定、一次性验证的场景。

二、Web 自动化常用工具

常见工具:

  • Selenium;
  • Playwright;
  • Cypress;
  • Robot Framework;
  • pytest / TestNG;
  • Allure;
  • Jenkins。

传统测试岗位问得最多的是 Selenium,但新项目也越来越多使用 Playwright。

三、入门第一步:打开浏览器

Selenium 示例:

from selenium import webdriver

browser = webdriver.Chrome()
browser.get("https://example.com")
browser.quit()

这个流程说明 Web 自动化是通过浏览器驱动控制真实浏览器。

四、元素定位

元素定位是 Web 自动化基础。

常见定位方式:

  • id;
  • name;
  • class name;
  • tag name;
  • link text;
  • partial link text;
  • css selector;
  • xpath。

优先使用稳定属性,比如 id、data-testid、唯一 name。不要过度依赖绝对 XPath。

五、常见页面操作

常见操作包括:

  • 点击;
  • 输入;
  • 清空;
  • 获取文本;
  • 获取属性;
  • 下拉选择;
  • 鼠标悬停;
  • 切换 iframe;
  • 切换窗口;
  • 上传文件;
  • 滚动页面。

示例:

username = browser.find_element("id", "username")
username.send_keys("tester")

六、等待机制

Web 自动化不稳定,很大一部分原因是等待没处理好。

常见等待:

  • 强制等待:sleep;
  • 隐式等待:implicitly_wait;
  • 显式等待:WebDriverWait。

推荐显式等待,等到元素可见、可点击或文本出现。

不要大量使用 sleep,会让脚本慢且不稳定。

七、断言怎么做

Web 自动化断言页面结果,而不是只看操作是否执行。

常见断言:

  • 页面是否跳转;
  • 文本是否出现;
  • 弹窗是否出现;
  • 表格数据是否正确;
  • 按钮是否可用;
  • 菜单是否展示;
  • URL 是否正确;
  • 页面元素是否存在。

例如登录成功后断言用户名或首页元素出现。

八、PO 模式怎么理解

Page Object 模式把页面元素和操作封装到页面类中。

好处:

  • 用例更清晰;
  • 页面元素集中维护;
  • 页面变更时改一处;
  • 减少重复代码。

结构:

pages/
  login_page.py
testcases/
  test_login.py

用例调用页面方法,而不是直接写一堆定位代码。

九、Web 自动化常见不稳定原因

  • 元素定位不稳定;
  • 页面加载慢;
  • 弹窗遮挡;
  • iframe 未切换;
  • 新窗口未切换;
  • 数据不独立;
  • 环境慢;
  • 浏览器版本和驱动不匹配;
  • 用例之间互相依赖。

面试时能说出这些,会显得有实战经验。

十、入门学习路径

建议按顺序学:

  1. HTML 基础;
  2. 浏览器开发者工具;
  3. Selenium 基础操作;
  4. 元素定位;
  5. 等待机制;
  6. 常见控件处理;
  7. 断言;
  8. PO 模式;
  9. pytest/TestNG;
  10. 报告和 Jenkins。

十一、面试回答模板

如果面试官问“Web 自动化测试怎么入门”,可以这样回答:

Web 自动化入门我会先掌握浏览器驱动、元素定位、页面操作、等待机制和断言。常用工具是 Selenium 或 Playwright。自动化场景优先选择稳定、重复、核心的流程,比如登录、搜索、表单提交和后台审核。实现时先通过 id、css、xpath 等方式定位元素,再进行输入、点击、选择、切换 iframe 或窗口等操作,最后断言页面文本、URL、表格数据或元素状态。框架层面会使用 Page Object 模式封装页面元素和操作,结合 pytest/TestNG、Allure 和 Jenkins 做回归执行。

十二、常见追问

追问:Web 自动化为什么不稳定?

常见原因是元素定位不稳定、等待不合理、页面加载慢、弹窗遮挡、iframe 或窗口未切换、测试数据不独立。

追问:什么时候不适合做 Web 自动化?

页面频繁变化、需求不稳定、一次性验证或视觉类强依赖场景,不适合优先自动化。

追问:PO 模式解决什么问题?

页面元素和操作集中封装,减少重复代码,提高维护性。

十三、练习清单

  1. 打开浏览器;
  2. 定位输入框;
  3. 输入账号密码;
  4. 点击登录;
  5. 显式等待首页元素;
  6. 断言登录成功;
  7. 处理下拉框;
  8. 处理 iframe;
  9. 封装 LoginPage;
  10. 生成自动化报告。

Web 自动化入门重点是稳定性。元素定位、等待机制、断言和 PO 模式,比堆很多用例更重要。

配套刷题: