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 编写完整的测试套件!

相关推荐
巴里巴气20 小时前
selenium基础知识 和 模拟登录selenium版本
爬虫·python·selenium·爬虫模拟登录
2501_924064111 天前
2025年跨端云真机测试平台深度测评:XR与折叠屏时代的兼容性之战
测试工具·移动端自动化测试·自动化测试脚本
Small black human1 天前
HTTP-Postman的安装及其使用
测试工具·postman
AIZHINAN1 天前
Appium 简介
自动化测试·测试工具·appium
吴free2 天前
mac电脑wireshark快速实现http接口抓包
网络·测试工具·http·wireshark
DeamoTech2 天前
ESCADA
物联网·测试工具
旷世奇才李先生2 天前
Selenium 安装使用教程
selenium·测试工具
百度测试开发2 天前
【软件测试】银行项目-转账功能测试点(详全)
自动化测试·软件测试·功能测试·软件测试工程师·接口测试·软件测试面试题·银行测试
巴里巴气3 天前
对selenium进行浏览器和驱动进行配置Windows | Linux
selenium·测试工具
q567315234 天前
Java Selenium反爬虫技术方案
java·爬虫·selenium