selenium简介

1. Selenium 简介

Selenium 是一个开源的 Web 自动化测试工具,支持多种编程语言(Java、Python、C#、JavaScript 等)和浏览器(Chrome、Firefox、Edge 等)。它包含三个主要组件:

  • Selenium WebDriver:用于编写自动化测试脚本的核心 API。

  • Selenium Grid:用于分布式测试,支持多机器并行运行测试。

  • Selenium IDE:浏览器插件,用于录制和回放测试用例(适合初学者)。


2. 学习 Selenium 的前置知识

在学习 Selenium 之前,建议掌握以下基础知识:

  • HTML & CSS :理解网页元素结构(如 <input>, <button>, <div> 等)。

  • JavaScript(基础):有助于理解 Web 交互逻辑。

  • 编程语言(Python/Java):Selenium 支持多种语言,推荐 Python(简单)或 Java(企业常用)。

  • XPath 和 CSS 选择器:用于定位网页元素。


3. 环境搭建

(1) 安装浏览器驱动

Selenium 需要浏览器驱动来控制浏览器:

下载后,将驱动文件放在 PATH 环境变量路径(如 /usr/local/binC:\Windows\)。

(2) 安装 Selenium

Python 安装
bash 复制代码
pip install selenium
Java 安装(Maven 项目)
XML 复制代码
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.10.0</version> <!-- 使用最新版本 -->
</dependency>

4. 第一个 Selenium 测试脚本

Python 示例(Chrome 浏览器)

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By

# 初始化浏览器驱动
driver = webdriver.Chrome()

# 打开网页
driver.get("https://www.baidu.com")

# 定位搜索框并输入内容
search_box = driver.find_element(By.ID, "kw")
search_box.send_keys("Selenium")

# 点击搜索按钮
search_button = driver.find_element(By.ID, "su")
search_button.click()

# 等待 3 秒查看结果
import time
time.sleep(3)

# 关闭浏览器
driver.quit()

Java 示例

java 复制代码
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class FirstSeleniumTest {
    public static void main(String[] args) {
        // 设置 ChromeDriver 路径(如果未配置环境变量)
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver.exe");
        
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.baidu.com");
        
        driver.findElement(By.id("kw")).sendKeys("Selenium");
        driver.findElement(By.id("su")).click();
        
        try {
            Thread.sleep(3000); // 等待 3 秒
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        
        driver.quit();
    }
}

5. 核心概念

(1) 元素定位方式

Selenium 提供多种定位方式:

  • By.ID(推荐,唯一性高)

  • By.NAME

  • By.CLASS_NAME

  • By.TAG_NAME

  • By.LINK_TEXT(适用于 <a> 链接)

  • By.PARTIAL_LINK_TEXT

  • By.XPATH(灵活但易变)

  • By.CSS_SELECTOR(推荐,性能好)

(2) 常用操作

  • send_keys("text"):输入文本

  • click():点击元素

  • clear():清空输入框

  • get_attribute("value"):获取元素属性

  • is_displayed() / is_enabled():检查元素状态

(3) 等待机制

  • 强制等待(不推荐):

    python 复制代码
    import time
    time.sleep(3)  # 等待 3 秒
  • 隐式等待(全局等待):

    python 复制代码
    driver.implicitly_wait(10)  # 最多等待 10 秒
  • 显式等待(推荐):

    python 复制代码
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "kw"))
    )

6. 进阶学习

  1. Page Object Model (POM)

    将页面元素和操作封装成类,提高代码可维护性。

  2. 数据驱动测试

    使用 pytest(Python)或 TestNG(Java)管理测试数据。

  3. Selenium Grid

    实现多浏览器并行测试。

  4. Headless 模式

    无界面运行测试(适用于 CI/CD):

    python 复制代码
    options = webdriver.ChromeOptions()
    options.add_argument("--headless")
    driver = webdriver.Chrome(options=options)

7. 学习资源

  • 官方文档Selenium Docs

  • 书籍

    • 《Selenium WebDriver 实战宝典》(Java)

    • 《Python 自动化测试实战》(Python)

  • 在线课程

    • Udemy / Coursera 上的 Selenium 课程

    • B 站 / YouTube 免费教程


8. 实战练习

  1. 尝试在 百度 / Google 搜索并验证结果。

  2. 登录一个网站(如 GitHub),测试登录成功/失败场景。

  3. 使用 POM 模式 重构代码。


总结

Selenium 是 Web 自动化测试的核心工具,掌握它可以提高测试效率。建议从 Python 或 Java 入手,逐步学习元素定位、等待机制、POM 模式等高级用法。
下一步 :尝试结合 pytestTestNG 编写完整的测试套件!

相关推荐
xy34538 小时前
Wireshark捕获过滤器——语法元素详解
网络·测试工具·渗透测试·wireshark
PhotonixBay14 小时前
共聚焦成像核心原理:针孔、PSF与三维形貌测量技术
人工智能·测试工具·算法
程序员小远15 小时前
接口测试之文件上传
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
kft131417 小时前
Playwright + 本地 AI,从录制到自愈闭环的一站式自动化测试平台。
人工智能·测试工具
ClouGence18 小时前
零代码自动化测试工具回演 CueCast 新版本发布:数据变量、多标签页录制与登录准备能力上线
selenium·测试
测试狗科研平台2 天前
多尺度仿真如何预测电解液的倍率、寿命与枝晶风险?
功能测试·科技·材料工程
蒲公英内测分发2 天前
Typeoff:当 AI 开始参与工作,我们可能需要重新思考“输入”这件事
人工智能·测试工具·项目管理·语音输入·ai语音输入
LT10157974442 天前
2026年手机机型兼容性测试选型指南:安卓机型碎片化、APP闪退UI错乱如何解决
android·测试工具·ui·智能手机