- Selenium 教程
- Selenium - 首页
- Selenium - 概述
- Selenium - 组件
- Selenium - 自动化测试
- Selenium - 环境搭建
- Selenium - 远程控制
- Selenium IDE 教程
- Selenium - IDE 简介
- Selenium - 特性
- Selenium - 限制
- Selenium - 安装
- Selenium - 创建测试
- Selenium - 创建脚本
- Selenium - 控制流
- Selenium - 存储变量
- Selenium - 警报和弹出窗口
- Selenium - Selenese 命令
- Selenium - 操作命令
- Selenium - 访问器命令
- Selenium - 断言命令
- Selenium - 断言/验证方法
- Selenium - 定位策略
- Selenium - 脚本调试
- Selenium - 验证点
- Selenium - 模式匹配
- Selenium - JSON 数据文件
- Selenium - 浏览器执行
- Selenium - 用户扩展
- Selenium - 代码导出
- Selenium - 代码输出
- Selenium - JavaScript 函数
- Selenium - 插件
- Selenium WebDriver 教程
- Selenium - 简介
- Selenium WebDriver 与 RC
- Selenium - 安装
- Selenium - 第一个测试脚本
- Selenium - 驱动程序会话
- Selenium - 浏览器选项
- Selenium - Chrome 选项
- Selenium - Edge 选项
- Selenium - Firefox 选项
- Selenium - Safari 选项
- Selenium - 双击
- Selenium - 右键单击
- Python 中的 HTML 报告
- 处理编辑框
- Selenium - 单个元素
- Selenium - 多个元素
- Selenium Web 元素
- Selenium - 文件上传
- Selenium - 定位器策略
- Selenium - 相对定位器
- Selenium - 查找器
- Selenium - 查找所有链接
- Selenium - 用户交互
- Selenium - WebElement 命令
- Selenium - 浏览器交互
- Selenium - 浏览器命令
- Selenium - 浏览器导航
- Selenium - 警报和弹出窗口
- Selenium - 处理表单
- Selenium - 窗口和选项卡
- Selenium - 处理链接
- Selenium - 输入框
- Selenium - 单选按钮
- Selenium - 复选框
- Selenium - 下拉框
- Selenium - 处理 iframe
- Selenium - 处理 Cookie
- Selenium - 日期时间选择器
- Selenium - 动态 Web 表格
- Selenium - Actions 类
- Selenium - Action 类
- Selenium - 键盘事件
- Selenium - 键向上/向下
- Selenium - 复制和粘贴
- Selenium - 处理特殊键
- Selenium - 鼠标事件
- Selenium - 拖放
- Selenium - 笔事件
- Selenium - 滚动操作
- Selenium - 等待策略
- Selenium - 显式/隐式等待
- Selenium - 支持功能
- Selenium - 多选
- Selenium - 等待支持
- Selenium - 选择支持
- Selenium - 颜色支持
- Selenium - ThreadGuard
- Selenium - 错误和日志记录
- Selenium - 异常处理
- Selenium - 其他
- Selenium - 处理 Ajax 调用
- Selenium - JSON 数据文件
- Selenium - CSV 数据文件
- Selenium - Excel 数据文件
- Selenium - 跨浏览器测试
- Selenium - 多浏览器测试
- Selenium - 多窗口测试
- Selenium - JavaScript 执行器
- Selenium - 无头执行
- Selenium - 捕获屏幕截图
- Selenium - 捕获视频
- Selenium - 页面对象模型
- Selenium - 页面工厂
- Selenium - 录制和回放
- Selenium - 框架
- Selenium - 浏览上下文
- Selenium - DevTools
- Selenium Grid 教程
- Selenium - 概述
- Selenium - 架构
- Selenium - 组件
- Selenium - 配置
- Selenium - 创建测试脚本
- Selenium - 测试执行
- Selenium - 端点
- Selenium - 自定义节点
- Selenium 报告工具
- Selenium - 报告工具
- Selenium - TestNG
- Selenium - JUnit
- Selenium - Allure
- Selenium 和其他技术
- Selenium - Java 教程
- Selenium - Python 教程
- Selenium - C# 教程
- Selenium - Javascript 教程
- Selenium - Kotlin 教程
- Selenium - Ruby 教程
- Selenium - Maven 和 Jenkins
- Selenium - 数据库测试
- Selenium - LogExpert 日志记录
- Selenium - Log4j 日志记录
- Selenium - Robot Framework
- Selenium - AutoIT
- Selenium - Flash 测试
- Selenium - Apache Ant
- Selenium - Github 教程
- Selenium - SoapUI
- Selenium - Cucumber
- Selenium - IntelliJ
- Selenium - XPath
Selenium - 环境搭建
Selenium Webdriver 可用于自动化 Web 应用程序的测试。Selenium 可以与多种语言一起使用,例如 Java、Python、Ruby 等。
让我们讨论如何使用 Java 设置 Selenium 的环境。Selenium 的安装可以通过以下步骤完成:
步骤 1 - 我们需要在本地系统中下载并安装 Java。这可以通过导航到以下链接来完成:
要更详细地了解如何设置 Java,我们可以参考以下链接:
https://www.youtube.com/watch?v=bxIZ1GVWYkQ
成功安装 Java 后,我们可以通过运行以下命令确认其安装:java(在命令提示符下)。
C:\java
它将在屏幕上显示以下信息:
Usage: java [options] <mainclass> [args...] (to execute a class) or java [options] -jar <jarfile> [args...] (to execute a jar file) or java [options] -m <module>[/<mainclass>] [args...] java [options] --module <module>[/<mainclass>] [args...] (to execute the main class in a module) or java [options] <sourcefile> [args] (to execute a single source-file program) Arguments following the main class, source file, -jar <jarfile>, -m or --module <module>/<mainclass> are passed as the arguments to main class. where options include: -cp <class search path of directories and zip/jar files> -classpath <class search path of directories and zip/jar files> --class-path <class search path of directories and zip/jar files> A ; separated list of directories, JAR archives, and ZIP archives to search for class files. -p <module path> --module-path <module path>... A ; separated list of directories, each directory is a directory of modules. --upgrade-module-path <module path>... A ; separated list of directories, each directory is a directory of modules that replace upgradeable modules in the runtime image --add-modules <module name>[,<module name>...] root modules to resolve in addition to the initial module. <module name> can also be ALL-DEFAULT, ALL-SYSTEM, ALL-MODULE-PATH. --enable-native-access <module name>[,<module name>...] modules that are permitted to perform restricted native operations. <module name> can also be ALL-UNNAMED. --list-modules list observable modules and exit -d <module name> --describe-module <module name> describe a module and exit --dry-run create VM and load main class but do not execute main method. The --dry-run option may be useful for validating the command-line options such as the module system configuration. --validate-modules validate all modules and exit The --validate-modules option may be useful for finding conflicts and other errors with modules on the module path. -D<name>=<value> set a system property -verbose:[class|module|gc|jni] enable verbose output for the given subsystem -version print product version to the error stream and exit --version print product version to the output stream and exit -showversion print product version to the error stream and continue --show-version print product version to the output stream and continue --show-module-resolution show module resolution output during startup -? -h -help print this help message to the error stream --help print this help message to the output stream -X print help on extra options to the error stream --help-extra print help on extra options to the output stream -ea[:<packagename>...|:<classname>] -enableassertions[:<packagename>...|:<classname>] enable assertions with specified granularity -da[:<packagename>...|:<classname>] -disableassertions[:<packagename>...|:<classname>] disable assertions with specified granularity -esa | -enablesystemassertions enable system assertions -dsa | -disablesystemassertions disable system assertions -agentlib:<libname>[=<options>] load native agent library <libname>, e.g. -agentlib:jdwp see also -agentlib:jdwp=help -agentpath:<pathname>[=<options>] load native agent library by full pathname -javaagent:<jarpath>[=<options>] load Java programming language agent, see java.lang.instrument -splash:<imagepath> show splash screen with specified image HiDPI scaled images are automatically supported and used if available. The unscaled image filename, e.g. image.ext, should always be passed as the argument to the -splash option. The most appropriate scaled image provided will be picked up automatically. See the SplashScreen API documentation for more information @argument files one or more argument files containing options --disable-@files prevent further argument file expansion --enable-preview allow classes to depend on preview features of this release To specify an argument for a long option, you can use --<name>=<value> or --<name> <value>.
接下来,我们将通过运行以下命令确认已安装的 Java 版本:
java –version
它将显示以下输出:
openjdk version "17.0.9" 2023-10-17 OpenJDK Runtime Environment Homebrew (build 17.0.9+0) OpenJDK 64-Bit Server VM Homebrew (build 17.0.9+0, mixed mode, sharing)
执行的命令的输出表明系统中安装的 Java 版本为 17.0.9。
我们还需要使用以下链接在系统中安装 Maven:
https://maven.apache.org/download.cgi。
要更详细地了解如何设置 Maven,我们可以参考以下链接:
https://tutorialspoint.com/maven/maven_environment_setup.htm
接下来,我们将通过运行以下命令确认已安装的 Maven 版本:
mvn –version
它将显示以下输出:
Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae) Maven home: /opt/homebrew/Cellar/maven/3.9.6/libexec Java version: 21.0.1, vendor: Homebrew, runtime: /opt/homebrew/Cellar/openjdk/21.0.1/libexec/openjdk.jdk/Contents/Home Default locale: en_IN, platform encoding: UTF-8 OS name: "mac os x", version: "14.0", arch: "aarch64", family: "mac"
执行的命令的输出表明系统中安装的 Maven 版本为 Apache Maven 3.9.6。
步骤 2 - 接下来,我们将安装 IntelliJ 编辑器来运行 Selenium 测试。市场上有许多可用的编辑器,例如:Eclipse、IntelliJ、Atom 等。使用这些编辑器,我们可以开始使用 Java 项目来启动我们的测试自动化。今天,我们将讨论如何在 IntelliJ 中设置我们的 Selenium 代码。
对于 IntelliJ 安装,应安装最新版本的 Java。
让我们开始吧:
步骤 1 - 使用以下链接导航到 IntelliJ 的官方网站(它是 Jetbrains 的产品),然后单击下载:
https://www.jetbrains.com/idea/。
步骤 2 - 导航到下一页后,我们将获得在各种操作系统(如 Windows、macOS 和 Linux)中下载 IntelliJ 的选项。单击与您当前系统中使用的操作系统相对应的选项卡。
IntelliJ 有两个版本,付费版和社区版(免费版)。
我们将下载社区版。为此,我们将导航到 IntelliJ IDEA 社区版部分,然后单击下载。
在 macOS 中完成下载后,我们将 IntelliJ IDEA CE 文件从 Downloads 文件夹拖到 Applications 文件夹。
步骤 3 - IntelliJ 徽标应显示几秒钟,然后出现 JETBRAINS 社区版条款。选中复选框以接受条款和条件,然后单击继续。
步骤 4 - 欢迎使用 IntelliJ IDEA 应出现。单击新建项目按钮。
步骤 5 - 在名称:字段下输入名称。选择语言为 Java,构建系统为 Maven,以及 JDK 版本,然后单击创建。
步骤 6 - 输入 ArtifactId 并单击创建。
步骤 7 - IntelliJ 编辑器设置应已成功完成。
步骤 8 - 接下来,我们将从以下链接添加 Selenium Maven 依赖项:
步骤 9 - 选择并单击中央选项卡下的版本链接。我们导航到 Selenium Java>><version> 页面。复制 Maven 选项卡下的依赖项。
依赖项示例:
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.11.0</version> </dependency>
步骤 10 - 将步骤 9 中复制的依赖项粘贴到 pom.xml 文件中(位于 IntelliJ 工作区中创建的 Maven 项目下)。
步骤 11 - 在 Main.java 文件中添加以下代码。
示例
Main.java 类文件中的代码实现:
package org.example; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; public class Main { public static void main(String[] args) throws InterruptedException { // Initiate the Webdriver WebDriver driver = new ChromeDriver(); // adding implicit wait of 15 secs driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); // URL launch driver.get("https://www.google.com"); // get browser title after browser launch System.out.println("Browser title: " + driver.getTitle()); } }
pom.xml 文件中添加的依赖项:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>SeleniumJava</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>16</maven.compiler.source> <maven.compiler.target>16</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> <dependencies> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.11.0</version> </dependency> </dependencies> </project>
步骤 11 - 右键单击并选择运行“Main.main()”选项。等待运行完成。
步骤 12 - Chrome 浏览器启动,我们在控制台中获得了输出 - 浏览器标题:Google,以及消息 Process finished with exit code 0,表示代码已成功执行。
输出
Browser title: Google Process finished with exit code 0
此外,Chrome 浏览器启动,顶部显示消息Chrome 正在由自动化测试软件控制。
要更详细地了解如何设置 Eclipse,我们可以参考以下链接:
https://tutorialspoint.com/eclipse/index.htm
Selenium 也可以与 Python 一起配置,为此我们需要 PyCharm 编辑器。要更详细地了解如何设置 PyCharm,我们可以参考以下链接:
https://tutorialspoint.com/pycharm/index.htm。
让我们再举一个例子,我们将启动浏览器并打开一个应用程序,最后退出浏览器。
示例
MainBrowserQuit.java 类文件中的代码实现。
package org.example; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import java.util.concurrent.TimeUnit; public class MainBrowserQuit { public static void main(String[] args) throws InterruptedException { // Initiate the Webdriver WebDriver driver = new ChromeDriver(); // adding implicit wait of 15 secs driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); // URL launch and get the browser title driver.get("https://tutorialspoint.com/selenium/practice/selenium_automation_practice.php"); System.out.println( "Browser title after launch: " + driver.getTitle()); // close browser driver.quit(); } }
输出
Browser title after launch: Selenium Practice - Student Registration Form Process finished with exit code 0
在上面的示例中,我们首先启动了 Chrome 浏览器,然后检索了浏览器标题,然后退出了浏览器,并在控制台中收到了消息 - 启动后浏览器标题:Selenium Practice - 学生注册表单。
最后,收到了消息Process finished with exit code 0,表示代码已成功执行。
因此,我们已成功完成了本教程中的 Selenium 环境设置。