当前位置: 首页 > article >正文

Selenium自动化测试框架 入门与使用

目录

1. Selenium 简介

2. 使用 Selenium

2.1 Java 使用 Selenium

2.2 Python 使用 Selenium

2.3 支持的浏览器及 WebDriver

3. ChromeDriver 的安装

3.1 查看本机 Chrome 版本

3.2 匹配对应的 ChromeDriver 并下载

3.3 配置 ChromeDriver 路径

3.4 在服务器(如 CentOS)上安装 Chrome

Java中使用Selenium的代码示例:

4. Selenium 内容详解

4.1 Chrome 启动参数示例

4.2 元素定位方式

4.3 其他定位技巧


1. Selenium 简介

Selenium 是一个开源的 Web 自动化测试框架,支持多种编程语言(如 Java、Python、C# 等),可模拟用户操作浏览器。

Selenium 的主要功能

  1. 自动化测试:用于 Web 应用程序的功能测试。
  2. 爬虫与数据抓取:获取网页内容,实现自动化数据收集。
  3. 网站监控:定期检查网站是否在线,以及页面元素是否按预期显示。
  4. 视觉测试:结合图像识别技术,检查网页的视觉元素是否符合设计。
  5. 浏览器兼容性测试:验证 Web 应用在不同浏览器上的表现。
  6. 性能测试:模拟用户行为,评估网站性能。
  7. API 测试:通过浏览器自动化测试 Web API。
  8. 用户旅程映射:模拟用户访问路径,分析用户体验。
  9. 自动化报告生成:自动执行测试并生成测试报告。

2. 使用 Selenium

2.1 Java 使用 Selenium

环境准备
  1. 安装 Java 和 IDEA
  2. 在 Maven 项目中引入 Selenium 依赖:
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.10.0</version>
</dependency>

<!-- 添加特定浏览器驱动 -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-chrome-driver</artifactId>
    <version>4.9.0</version>
</dependency>

<!-- 引入 TestNG 进行测试 -->
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.4.0</version>
    <scope>test</scope>
</dependency>

3.下载对应的浏览器 WebDriver(如 ChromeDriver)。

2.2 Python 使用 Selenium

环境准备
  1. 安装 Python
  2. 通过 pip 安装 Selenium:
pip install selenium

3.下载对应的浏览器 WebDriver(如 ChromeDriver)。

2.3 支持的浏览器及 WebDriver

  • Chrome:ChromeDriver
  • Firefox:GeckoDriver
  • Edge:Microsoft WebDriver
  • Internet Explorer:IEDriverServer
  • 参考:IE对应的各个版本webdriver_iedriverserver和ie版本对应-CSDN博客

3. ChromeDriver 的安装

下面以Chrome浏览器来举例:

3.1 查看本机 Chrome 版本

在 Chrome 浏览器地址栏输入 chrome://version/,查看浏览器版本,例如 126.0.6478.57

3.2 匹配对应的 ChromeDriver 并下载

方法一

访问 ChromeDriver 官方下载站:https://chromedriver.chromium.org/downloads下载与 Chrome 版本匹配的 ChromeDriver。

方法二

  • 访问:https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json
  • 选择与自己版本最接近的 ChromeDriver。

3.3 配置 ChromeDriver 路径

将下载的 ChromeDriver 放置到固定路径,如:D:\Drivers\chromedriver-win64。

并将其路径添加到系统环境变量(可选)。

3.4 在服务器(如 CentOS)上安装 Chrome

安装 Chrome
curl https://intoli.com/install-google-chrome.sh | bash
查看 Chrome 版本
google-chrome --version
下载并安装 ChromeDriver

按照前述方法下载匹配版本的 ChromeDriver 并解压。


Java中使用Selenium的代码示例:


import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class GoogleSearchTest {

    private WebDriver driver;

    @BeforeMethod
    public void setUp() {
        // 设置WebDriver路径
        System.setProperty("webdriver.chrome.driver", "D:\\Drivers\\chromedriver-win64");
        // 初始化WebDriver
        driver = new ChromeDriver();
    }

    @Test
    public void testGoogleSearch() {
        // 打开Google首页
        driver.get("https://www.google.com");
        // 等待页面加载完成
        driver.manage().timeouts().implicitlyWait(10, java.util.concurrent.TimeUnit.SECONDS);
        // 寻找搜索框元素并输入搜索词
        driver.findElement(By.name("q")).sendKeys("Selenium");
        // 点击搜索按钮
        driver.findElement(By.name("btnK")).click();
        // 验证页面标题是否包含搜索词
        assert driver.getTitle().contains("Selenium");
    }

    @AfterMethod
    public void tearDown() {
        // 关闭浏览器
        driver.quit();
    }
}

 

4. Selenium 内容详解

4.1 Chrome 启动参数示例

public static void main(String[] args) {
    System.setProperty("webdriver.chrome.driver", "D:\\Drivers\\chromedriver-win64");
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--disable-extensions");
    options.addArguments("--headless");
    options.addArguments("window-size=1920x3000");
    options.addArguments("start-maximized");
    options.addArguments("--disable-gpu");
    options.addArguments("--user-data-dir");
    options.addArguments("--disable-popup-blocking");
    options.addArguments("--no-sandbox");
    options.addArguments("--disable-web-security");
    options.addArguments("--ignore-certificate-errors");
    options.addArguments("--incognito");
}

4.2 元素定位方式

  1. 使用 ID(最快最准确):
    driver.findElement(By.id("id值"));
    
  2. 使用 CSS 选择器(推荐):
    driver.findElement(By.cssSelector("input[type='submit']"));
    
  3. 使用 ClassName
    driver.findElement(By.className("elementClass"));
    
  4. 使用 TagName
    driver.findElement(By.tagName("input"));
    
  5. 使用 Name
    driver.findElement(By.name("elementName"));
    
  6. 使用 LinkText(完整文本)
    driver.findElement(By.linkText("Link Text"));
    
  7. 使用 PartialLinkText(部分文本)
    driver.findElement(By.partialLinkText("Partial Link Text"));
    
  8. 使用 XPath(避免绝对路径):
    driver.findElement(By.xpath("//input[@type='submit']"));
    

4.3 其他定位技巧

  • 使用逻辑运算符组合定位。
  • 避免使用过于通用的选择器。
  • 处理动态元素时使用显式等待。
  • 处理 iframe 时需要先切换到相应的框架。
  • 添加异常处理逻辑,提高稳定性。

本指南介绍了 Selenium 的基本概念、功能及其在 Java 中的使用方法,同时详细讲解了 ChromeDriver 的安装步骤和 Selenium 的核心功能。希望大家有所帮助🙂!


http://www.kler.cn/a/524369.html

相关文章:

  • 指针的介绍3后
  • [权限提升] 常见提权的环境介绍
  • Git进阶之旅:Git 配置信息 Config
  • Vue.js组件开发-实现下载时暂停恢复下载
  • 登录授权流程
  • SpringBoot统一数据返回格式 统一异常处理
  • Appium介绍
  • COCO8 数据集上训练 YOLO11n:从入门到跑路(100 轮训练实战)
  • UE5.3 C++ CDO的初步理解
  • 论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(五)
  • SQL教程-基础语法
  • 算法基础学习——快排与归并(附带java模版)
  • 模糊综合评价
  • 咸鱼商品爬取|监控|sign逆向分析实现
  • 深度学习指标可视化案例
  • 每日 Java 面试题分享【第 16 天】
  • 【初/高中生讲机器学习】0. 本专栏 “食用” 指南——写在一周年之际⭐
  • sem_init的概念和使用案例-简洁版
  • 信息学奥赛一本通 1342:【例4-1】最短路径问题
  • 本地项目上传到码云
  • 代码随想录算法训练营第三十八天-动态规划-完全背包-139.单词拆分
  • 【go语言】指针
  • 2025 = 1^3 + 2^3 + 3^3 + 4^3 + 5^3 + 6^3 + 7^3 + 8^3 + 9^3
  • mac安装dockerdesktop优化
  • ECMAScript--promise的使用
  • AutoDL 云服务器:普通 用户 miniconda 配置