惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
博客园_首页
U
Unit 42
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
MongoDB | Blog
MongoDB | Blog
美团技术团队
H
Help Net Security
G
Google Developers Blog
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
Google DeepMind News
Google DeepMind News
J
Java Code Geeks
M
MIT News - Artificial intelligence
腾讯CDC
IT之家
IT之家
Vercel News
Vercel News
C
Check Point Blog
博客园 - 三生石上(FineUI控件)
Last Week in AI
Last Week in AI
I
InfoQ
博客园 - 司徒正美
A
About on SuperTechFans

博客园 - Java码界探秘

(Redis基础教程之十) 如何在Redis中运行事务 (Redis基础教程之十一) 如何使Redis中的Key过期 (Redis基础教程之十二) 如何解决Redis中的故障 (Redis基础教程之十三) 如何从命令行更改Redis的配置 开源诗词数据集poetry_dataset|Mac本地微调诗词大模型全方案,配套诗词检索站shi-ci.cn (Python基础教程之二十二)爬虫下载网页视频(video blob) Selenium IDE使用指南一(爬虫脚本录制器) Selenium IDE使用指南二(命令行运行器) Selenium IDE使用指南三(控制流) Selenium IDE使用指南五(常见问题) OpenClaw + VNC 桌面 + Chrome 完整实战指南 2026年AI助手选型指南:10款主流产品深度对比 OpenClaw安全使用完全手册:从入门到防护 解决 OpenClaw 浏览器自动化 DISPLAY 环境问题 OpenClaw省钱攻略:如何把Token消耗降低80% AI 团队协作中的虚假汇报风波:一次信任危机的处理实录 HiClaw 多代理协作开发实战:用 AI 管理 AI 团队 OpenClaw架构解析:AI工程师的实战学习范本 DBeaver 与 Excel JDBC 驱动(xlSql)使用说明 从韩国客机事故看Java异常处理机制:保障程序的“安全着陆” 深入理解 Servlet:从基础概念到高级特性与实战应用 探索 Spring AOP:全面解析与实战应用 深入理解 HTTP 协议:从基础到实践全解析 揭秘“山姆黄牛”背后的技术逻辑:用Java实现会员管理系统的防黄牛策略 Java 设计模式——从冰雪经济看设计模式的综合运用(工厂、单例、策略、观察者) 为什么你用的 MyBatis 慢?一行配置让它性能翻倍! 35+程序员的职场焦虑:数字化时代的年龄偏见与应对策略 年薪20+万美元,每周仅工作5小时?斯坦福研究发现:9.5%的“幽灵工程师”每年浪费900亿美元!如何避免“幽灵工程师”现象影响项目生产力 MiniTomcat 系列:第一章:解锁实现基础 HTTP 服务器的奥秘 超详细!SED流编辑器从入门到精通
Selenium IDE使用指南四(代码导出)
Java码界探秘 · 2026-07-07 · via 博客园 - Java码界探秘

入门

您可以通过右键单击测试或套件,选择Export,选择目标语言,然后单击,将测试或套件的测试导出到WebDriver代码Export

代码导出右键单击
代码导出菜单

这会将包含导出的目标语言代码的文件保存到浏览器的下载目录中。

原产地跟踪代码注释

导出时,有一个可选的切换开关可启用源跟踪代码注释。

这会将内联代码注释放置在导出的文件中,其中包含有关生成该文件的Selenium IDE中的测试步骤的详细信息。

支持的出口

当前,支持导出到以下语言和测试框架。

  • C#NUnit
  • Java JUnit
  • JavaScript Mocha
  • python pytest

我们打算在每种语言的至少一个测试框架中支持所有官方支持的Selenium编程语言绑定(例如Java,JavaScript,C#,Python和Ruby)。

欢迎提供帮助以添加特定语言的新语言和测试框架。有关如何操作的详细信息,请参见如何贡献

C#NUnit

C#NUnit的导出代码被构建为与.NET Core,NUnit 3.11和最新版本的Selenium一起使用。

要创建一个与NUnit一起使用的新样板项目,请使用以下dotnet new命令。

dotnet new nunit -n NUnit-Tests --framework netcoreapp2.0

使用以下.csproj文件,您可以使用以下dotnet restore命令安装正确的软件包和版本。

<!-- filename: example.csproj -->
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="nunit" Version="3.11.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="3.13.0" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
    <PackageReference Include="Selenium.Support" Version="4.0.0-alpha03" />
    <PackageReference Include="Selenium.WebDriver" Version="4.0.0-alpha03" />
  </ItemGroup>

</Project>


> dotnet restore example.csproj

C#xUnit

C#xUnit的导出代码被构建为可与C#,xUnit和最新版本的Selenium一起使用。

就像C#Nunit一样,您可以使用dotnet工具安装它,并在安装这些依赖项之后运行它(例如,使用Install-Package Selenium.WebDriveror或dotnet add package Selenium.WebDriver)。

要创建一个与xUnit一起使用的新样板项目,请使用以下dotnet new命令。

> dotnet new xUnitTests

使用以下.csproj文件,您可以使用以下dotnet restore命令安装正确的软件包和版本。

<!-- filename: example.csproj -->
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="xunit" Version="2.4.1" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
    <PackageReference Include="Selenium.Support" Version="4.0.0-alpha03" />
    <PackageReference Include="Selenium.WebDriver" Version="4.0.0-alpha03" />
  </ItemGroup>

</Project>


> dotnet restore example.csproj

Java JUnit

Java JUnit的导出代码可与Java 8,JUnit 4.12和最新版本的Selenium一起使用。

您应该能够将导出的Java文件放入带有pom.xml列出这些依赖关系的文件的标准Maven目录结构中并运行它。

这是一个示例pom.xml,可帮助您入门。

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-ide-java-code-export</artifactId>
  <version>1</version>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>4.0.0-alpha-3</version>
    </dependency>
  </dependencies>
</project>

JavaScript Mocha

JavaScript Mocha的导出代码被构建为与Node 10,Mocha 6.1.x和最新版本的Selenium一起使用。

安装这些依赖项(例如,使用npm install)后,您应该能够获取导出的JavaScript文件并运行它。

这是一个示例package.json,可帮助您入门。

{
  "dependencies": {
    "mocha": "^6.1.4",
    "selenium-webdriver": "^4.0.0-alpha.3"
  }
}

python pytest

Python pytest的导出代码可与Python 3,pytest 4.6.x和最新版本的Selenium一起使用。

安装这些依赖项(例如,使用pip3 install)后,您应该能够获取导出的JavaScript文件并运行它。

这是一个示例requirements.txt,可帮助您入门。

pytest == 4.6.3
selenium == 4.0.0a1


> pip3 install -r ./requirements.txt

Ruby RSpec

Ruby Rspec的导出代码可与Ruby 2.6.x,RSpec 3.9.x和最新版本的Selenium一起使用。

通过使用Bundler和以下工具,Gemfile您可以安装必要的依赖项。

# Gemfile
source 'https://rubygems.org'

gem 'selenium-webdriver'
gem 'rspec'


> gem install bunder
> bundle install

如何贡献

代码导出以模块化方式构建,以帮助实现贡献。

每种语言和测试框架都有自己的包含要导出代码的包。每个代码段都映射到Selenium IDE中的命令,并且每个程序包都依赖于底层的“核心”程序包,该程序包承担了所有繁重的工作。

以下是在一种已经建立的语言中为一种新语言或一种新的测试框架创建代码的步骤。

1.创建一个新包

首先,复制一个现有的语言包(例如packages/code-export-java-junit),然后将其重命名(例如,文件夹和文件中的详细信息package.json)为您想要贡献的目标语言和框架(例如packages/code-export-ruby-rspec,等等)。

接下来,添加新的软件包作为依赖于package.jsoncode-export

最后,yarn从项目的根目录运行,然后使用构建项目yarn watch此处提供了进行本地构建的完整详细信息)。

2.更新定位器和命令

代码导出的基础是特定于语言的字符串,这些字符串将转换为输出的代码。其中最突出的是命令和定位器策略(例如,“ by”查找的语法)。

对于给定的语言,每种语言都有一个文件,以及随附的测试文件。

您可以在中看到一个示例packages/code-export-java-junit

声明新命令时,可以将其输出指定为字符串,也可以指定指定缩进级别的对象

内置在代码导出中的是一个前缀控件,用于控制输出代码的缩进。如果命令的输出是冗长的并且您想明确显示,则此结构很有用。或者,如果命令更改了紧随其后的命令的缩进级别。

3.创建钩子

钩子构成了要导出的代码的大部分结构(例如,套件,测试以及其中包含的所有内容,例如设置,拆卸等)。它们还使插件能够将代码导出到测试或套件的不同部分。

有9种不同的钩子:

  • afterAll (所有测试完成后)
  • afterEach(完成每个测试后-之前afterAll
  • beforeAll (在运行所有测试之前)
  • beforeEach(在运行每个测试之前-之后beforeAll
  • command (为插件添加的新命令发出代码)
  • dependency (添加其他语言依赖性)
  • inEachBegin (在每个测试的开始阶段)
  • inEachEnd (在每个测试的末尾)
  • variable (声明将在整个套件中使用的新变量)

您可以在packages/code-export-java-junit此处看到实现钩子的示例:钩子

4.更新语言特定的属性

您需要使用每种语言指定一些底层细节。诸如缩进多少空间,如何声明方法,测试,套件等之类的事情。

您可以在packages/code-export-java-junit此处查看实现此示例:语言特定的选项

5.将其添加到混合物中

将其他所有内容准备就绪后,就可以将其连接起来以在UI中使用了。

这是可能的packages/code-export/src/index.js

您需要将语言添加到中availableLanguages

6.测试和调整

导出代码的最佳端到端测试是导出一系列测试,并验证它们是否按预期运行。

从开发版本中,您可以访问种子测试。这是验证所有标准库命令都适用于您的新语言的良好起点。

再次测试,修复和测试,直到您对最终结果充满信心。

  1. Selenium IDE 使用指南一(爬虫脚本录制器)
  2. Selenium IDE 使用指南二(命令行运行器)
  3. Selenium IDE 使用指南三(控制流)
  4. Selenium IDE 使用指南四(代码导出)
  5. Selenium IDE 使用指南五(常见问题)
  6. Selenium IDE 使用指南六(指令列表)
  7. Selenium IDE 使用指南七(参数定义)