青岛鲁icp 网站制作 牛商网,青岛媒体网地址,小小影院 电视剧免费,wordpress文章商品导购一、简介
ChromeDriver 是一个 WebDriver 的实现#xff0c;专门用于自动化控制 Google Chrome 浏览器。以下是关于 ChromeDriver 的详细说明#xff1a; 定义与作用#xff1a; ChromeDriver 是一个独立的服务器程序#xff0c;作为客户端库与 Google Chrome 浏览…一、简介
ChromeDriver 是一个 WebDriver 的实现专门用于自动化控制 Google Chrome 浏览器。以下是关于 ChromeDriver 的详细说明 定义与作用 ChromeDriver 是一个独立的服务器程序作为客户端库与 Google Chrome 浏览器之间的桥梁允许对浏览器进行编程控制。 它遵循 WebDriver 协议这是一个 W3C 标准旨在为 web 测试自动化提供平台和语言无关的 API。 主要用途包括网页自动化测试、网页数据抓取、网页应用功能自动化等场景常与 Selenium、Appium 等自动化测试框架结合使用。 工作原理 当启动 ChromeDriver 时它会创建一个 Chrome 浏览器实例并监听一个端口以接收来自客户端如 Selenium 或其他 WebDriver 客户端库的 HTTP 请求。 客户端通过发送符合 WebDriver 协议的 JSON-over-HTTP 请求给 ChromeDriver指示其执行特定的浏览器操作如打开网页、点击元素、填写表单等。 ChromeDriver 收到请求后将其转换为 Chrome 浏览器内部的命令利用 Chrome DevTools Protocol (CDP) 与浏览器交互执行相应操作并获取结果。 执行结果返回给客户端客户端根据响应更新对浏览器状态的认知或验证预期行为。
Selenium Server 是 Selenium 套件中的一款核心组件主要在特定情况下作为中间代理负责协调客户端测试脚本与浏览器或浏览器模拟器之间的通信。以下是对 Selenium Server 的详细介绍 历史背景 Selenium RC (Remote Control)早期版本的 Selenium 提供了一个名为 Selenium RC 的工具它通过 Selenium Server 实现对浏览器的远程控制。在这个架构中测试脚本通过客户端库与 Selenium Server 通信Server 接收指令后在本地或远程机器上启动浏览器并通过注入 JavaScript 来模拟用户操作和获取页面状态。 Selenium 2 (WebDriver)随着 WebDriver 技术的发展Selenium RC 被逐渐取代。WebDriver 提供了一种更直接、更高效的方式来操控浏览器无需依赖 JavaScript 注入。大多数情况下直接使用 WebDriver 客户端库与相应的浏览器驱动如 ChromeDriver、GeckoDriver 等即可进行自动化测试无需启动 Selenium Server。 当前角色与用途 Selenium Server 在现代 Selenium 使用场景中的角色已经相对减少但仍然在以下几种情况下发挥作用 远程执行当需要在远程计算机如云测试平台上的节点上运行测试脚本时可以使用 Selenium Server 作为中央调度器接收来自本地客户端的指令并转发给远程浏览器驱动。 旧版浏览器支持对于某些不再直接支持 WebDriver 协议的老版本浏览器可能仍需要通过 Selenium Server结合 legacy Selenium RC 模块来进行自动化测试。 HTMLUnit DriverHTMLUnit 是一个无头headless的 Java 实现的浏览器模拟器。由于它不是真正的浏览器不支持原生的 WebDriver 协议因此在使用 HTMLUnit Driver 时需要借助 Selenium Server 进行通信。 软件包与组件 selenium-server-standalone.jar这是包含所有必要依赖的单一文件形式的 Selenium Server 发布包。只需下载并运行这个 JAR 文件即可启动 Selenium Server。 selenium-server.jar早期版本可能提供的仅包含核心组件的 JAR 文件需要额外配置类路径classpath以包含所需的依赖库。 selenium-java这是一个 Maven 依赖坐标artifact通常指的是 Selenium Java 客户端库用于编写测试脚本。它与 Selenium Server 本身是不同的组件但在使用 Selenium Server 的项目中通常也会用到。 启动与配置 启动命令通过 Java 命令行工具运行 java -jar selenium-server-standalone.jar 即可启动 Selenium Server。可以根据需要添加各种命令行参数来配置 Server如指定端口、绑定 IP、启用 Grid 功能等。 Selenium GridSelenium Server 同时支持充当 Selenium Grid 的 Hub 或 Node 角色。Grid 允许分布式执行测试将测试负载分散到多台机器上的多个浏览器实例上。配置 Grid 需要额外的命令行参数并可能需要配置文件。 综上所述Selenium Server 主要用于在特定情况下提供远程浏览器控制、旧版浏览器支持以及与 HTMLUnit Driver 的集成。虽然在现代 WebDriver 测试中其使用频率有所下降但在复杂或特殊需求的自动化测试环境中它仍然是一个重要的组成部分。
二 、ChromeDriver
ChromeDriver官网下载地址 https://chromedriver.chromium.org/
查看你浏览器的版本号。 进入ChromeDriver的下载官网点击the Chrome for Testing availability dashboard 选择和自己的浏览器相对应的版本将网址复制后在浏览器中粘贴就可以下载其压缩包 下载压缩包后将其在你浏览器所在的同级目录解压 配置环境变量 运行cmd查看是否成功 三、Selenium-server
官网下载链接 https://www.selenium.dev/downloads/
这里我直接下载最新版的Selenium-server.jar包 放在没有中文件下的路径
在IDEA中点击 File - Project Structure... 点击Modules - 你所想做测试的模块 - Dependencies 点击 JARs or Directories... 选择Selenium-server.jar包点击“OK” Selenium-server.jar包已被引入点击“apply” 后点击“OK” 四、测试
在模块中新建一个测试类 Testpublic void main() throws InterruptedException {System.setProperty(webdriver.chrome.driver, 你的解压路径\\chromedriver.exe);WebDriver driver new ChromeDriver();driver.get(https://www.baidu.com); // 访问网站// ... 进行网页导航、元素操作等Thread.sleep(60000);driver.quit(); // 结束会话关闭浏览器} 运行 1
或者也可以在你要做测试的的模块的pom文件中引入以下依赖这样可以让父模块起到集中管理依赖的作用 dependencygroupIdorg.seleniumhq.selenium/groupIdartifactIdselenium-java/artifactIdversion3.141.59/version/dependencydependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion31.0.1-jre/version !-- 你需要的版本号可能不同 --/dependency 第一个依赖声明是针对 Selenium WebDriver 的 Java 绑定的。Selenium WebDriver 是一个用于自动化 web 浏览器交互的库经常被用于测试 web 应用。groupId 是 org.seleniumhq.seleniumartifactId 是 selenium-java这两个字段一起确定了这个库在 Maven 仓库中的位置。version 字段是 3.141.59代表了你想要使用的这个库的版本。 第二个依赖声明是针对 Guava 的这是一个由 Google 提供的 Java 核心库提供了许多有用的工具如集合操作、函数式编程、缓存等。groupId 是 com.google.guavaartifactId 是 guavaversion 字段是 31.0.1-jre。
在你的项目中添加这两个依赖声明后Maven 会自动下载这两个库并将它们添加到你的项目中你就可以在你的代码中使用这两个库提供的功能了。请注意添加这些依赖声明并不会立即改变你的项目你需要运行 mvn clean install 或类似的命令来让 Maven 更新你的项目并下载这些库。