# Selenium for Java **Repository Path**: chenweijia/selenium-for-java ## Basic Information - **Project Name**: Selenium for Java - **Description**: Selenium for Java的知识体系 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-29 - **Last Updated**: 2026-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Selenium for Java **JDK** - [通过Oracle的官方网址(需要登录账户)来下载JDK](https://www.oracle.com/java/technologies/downloads/) - [通过OpenJDK (免费,开源,推荐)来下载JDK](https://adoptium.net/zh-CN) - [如何下载和安装JDK](https://www.cnblogs.com/chenwjia/p/15645455.html) **Maven** - [通过Maven官网来下载Maven](https://maven.apache.org/) - [安装Maven的具体操作](https://www.cnblogs.com/chenwjia/p/15669708.html) **下载浏览器和驱动程序** - [下载chrome浏览器,火狐浏览器,IE浏览器的driver。以及如何启动本地IE浏览器](https://www.cnblogs.com/chenwjia/p/15730651.html) **关于Eclipse** - [通过Eclipse官网来下载Eclipse](https://www.eclipse.org/downloads/) - [通过OpenJDK来下载Eclipse (OpenJDK 免费,开源,推荐)](https://adoptium.net/zh-CN) - [安装Eclipse的具体操作](https://www.cnblogs.com/chenwjia/p/20930154) - [Eclipse中配置JDK,并创建一个Java Project](https://www.cnblogs.com/chenwjia/p/15591705.html) - [在Eclipse安装Java版本的Selenium(不通过Maven)](https://www.cnblogs.com/chenwjia/p/19774748) - [配置ChromeDriver以及用Eclipse编写Selenium+Java的自动化代码(没有Maven)](https://www.cnblogs.com/chenwjia/p/15606153.html) - [如何在Eclipse中配置Maven](https://www.cnblogs.com/chenwjia/p/15704674.html) - [如何在Eclipse安装Java版本的Selenium同时配置ChromeDriver以及编写一个Java + Selenium + Maven的demo程序(通过Maven)](https://www.cnblogs.com/chenwjia/p/15713524.html) - 学习如何[啟動本地電腦的Firefox瀏覽器同Chrome瀏覽器](https://www.cnblogs.com/chenwjia/p/15752817.html) **关于VS Code** - [如何在VSCode上配置JDK,并编写一个Java + Selenium的demo程序 (没有Maven)](https://www.cnblogs.com/chenwjia/p/19774777) - [解决如何在本地机器上,通过VSCode来成功运行现成已经编写好的Selenium+Java++Maven+Cucumber的自动化程序的问题](https://www.cnblogs.com/chenwjia/p/21530997) - [在VSCode上配置JDK,并编写一个Java + Selenium的demo程序 (有Maven)](https://gitee.com/explore) - [解决为什么我运行的时候,发现VS Code跑的代码不是最新的问题](https://www.cnblogs.com/chenwjia/p/16379052.html) - [如何在VS Code中如何新建工作区](https://www.cnblogs.com/chenwjia/p/22773840) - [如何解决在VS Code中,没有引用到Maven的本地仓库,而是引用了远程仓库的问题](https://www.cnblogs.com/chenwjia/p/19774786) - [Maven传递依赖冲突问题。比如 Guava 25.0-jre和22.0两个版本被同时引入,Maven不知该选哪个。](https://www.cnblogs.com/chenwjia/p/19774768) **元素定位** - [学习基本元素定位-Xpath定位](https://www.cnblogs.com/chenwjia/p/15556301.html) **鼠标键盘的操作** - [学习特殊元素操作-鼠标操作](https://www.cnblogs.com/chenwjia/p/15561270.html) **TestNG** - [了解Testng常用注解和断言](https://www.cnblogs.com/chenwjia/p/15759453.html) **等价类** - 1. 核心定义 - 等价类划分的核心思想是:把输入数据分成若干类,每一类里选一个代表值来测试,就能用最少的用例覆盖最多的场景。 - 有效等价类:对程序规格说明来说,合理、有意义的输入数据。用这类数据测试,程序应该正常处理并返回预期结果。 - 无效等价类:对程序规格说明来说,不合理、无意义的输入数据。用这类数据测试,程序应该给出错误提示或拒绝处理。 - 一句话总结:有效等价类验证“功能对不对”,无效等价类验证“容错好不好”。 - 2. 举个经典例子(面试高频) - 假设需求是:用户名长度必须在 6~18 位之间。 - 类型 划分依据 具体范围 代表值 - 有效等价类 长度在合法区间内 6 ≤ 长度 ≤ 18 如 abcdef(6位) - 无效等价类 长度小于下限 长度 < 6 如 abc(3位) - 无效等价类 长度大于上限 长度 > 18 如 20位字符串 - 无效等价类 非字符串/空值 空、空格、特殊字符 如 ""、" " 注意:无效等价类往往不止一个,因为“非法”的情况有很多种,每种都要单独设计用例。 3. 有效 vs 无效 的核心区别 维度 有效等价类 无效等价类 数据性质 合理、合法 不合理、非法 程序期望 正常处理,返回正确结果 报错、提示、拒绝 测试目的 验证功能正确性 验证异常处理和健壮性 数量 通常较少 通常较多(每种非法情况一类) 优先级 高(先保证主干功能) 中高(保证系统不崩溃) 4. 实战设计用例的原则 面试时如果让你“设计登录功能的等价类”,你可以按这个思路说: 1-先列有效等价类:正确的用户名+正确的密码。 2-再列无效等价类: 用户名错误 + 密码正确 用户名正确 + 密码错误 用户名错误 + 密码错误 用户名空 + 密码空 用户名含特殊字符 密码长度超限 3-每个等价类取一个代表值设计一条用例。 4-有效等价类可以合并测试(如正确用户名+正确密码一条用例搞定),但无效等价类必须逐个单独测,否则前一个错误会掩盖后一个错误。 5. 面试“一句话点睛” 有效等价类是验证程序做对了什么,无效等价类是验证程序对错误输入是否足够健壮。设计用例时,有效等价类保证覆盖率,无效等价类保证容错性,两者缺一不可。 **边界值** 核心思想一句话:错误最容易发生在边界上,所以专门盯着边界测。 边界值分析(Boundary Value Analysis)是对输入或输出的边界值进行测试,而不是选中间值。 为什么?因为大量Bug都出现在边界附近,比如: 循环条件写错(< 写成 <=) 数组越界 数值范围判断失误 2. 经典例子(接着上题) 需求:用户名长度必须在 6~18 位之间 类型 取值 说明 上点 6,18 正好等于边界,有效 离点 5,19 紧挨边界外侧,无效 内点 12 区间内部任意值,有效 面试常问:上点、离点、内点分别是什么? 上点:边界上的点(6 和 18),属于有效等价类。 离点:距离边界最近的非边界点(5 和 19),属于无效等价类。 内点:区间内任意一个非边界值(如 12),用来验证正常情况。 3. 边界值怎么取?(关键规则) 假设区间是 [A, B]: 边界类型 取几个值 具体值 上点 2个 A,B 离点 2个 A-1,B+1 内点 1个 区间内任意值 所以[6, 18] 的测试值就是:5,6,12,18,19 注意:如果需求是开区间 (6, 18),那上点变成 7 和 17,离点变成 6 和 18。 4. 边界值 vs 等价类(面试高频对比) 维度 等价类划分 边界值分析 核心思路 分类选代表 专盯边界点 关注点 类的内部 类的交界处 测试值 每类取一个代表值 上点、离点、内点 互补关系 确定测试范围 补充边界用例 实战中两者结合使用:先用等价类划分确定有哪些类,再用边界值补充每个类边界的用例。 5. 实战设计用例(面试可以直接说) 需求:年龄输入框,范围 18~60 岁,用等价类+边界值设计用例: 用例编号 输入值 类型 预期结果 1 17 无效(离点) 提示年龄不符 2 18 有效(上点) 通过 3 30 有效(内点) 通过 4 60 有效(上点) 通过 5 61 无效(离点) 提示年龄不符 6 空 无效(特殊) 提示不能为空 7 abc 无效(特殊) 提示格式错误 6. 面试“一句话点睛” 等价类划分是从类里选代表,边界值分析是专门盯着类与类的交界处。因为大量缺陷都藏在边界附近,所以实际设计用例时,我通常先用等价类确定范围,再用边界值补充上点、离点和内点,两者结合覆盖率最高。 7. 进阶加分项 如果面试官追问“边界值分析有什么局限”,你可以说: 边界值分析只关注单个输入的边界,不考虑多个输入的组合情况。如果多个参数之间有交互影响,还需要用判定表或正交实验法来补充组合测试。 #### 参与贡献 1. 在Kimi这个AI模型中,有关于搭建VS Code + Selenium + Java (没有maven)的内容 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request 5. 思维导图工具:https://app.diagrams.net/ #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) #### 特技 1. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 2. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目s