代碼匯出
開始使用
您可以透過右鍵按一下測試或測試套件,選擇匯出
,選擇您的目標語言,然後按一下匯出
,將測試或測試套件匯出為 WebDriver 程式碼。
這會儲存一個檔案,其中包含目標語言的已匯出程式碼,至瀏覽器的下載目錄。
原始追蹤程式碼註解
匯出時,有一個選項開關可啟用原始追蹤程式碼註解。
這會在匯出的檔案中放置內嵌程式碼註解,其中包含產生它的 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
使用 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.WebDriver
或 dotnet add package Selenium.WebDriver
)。
若要建立新的樣板專案以搭配 xUnit 使用,請使用 dotnet new
指令。
> dotnet new xUnitTests
使用 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 檔案,並將其放入標準 Maven 目錄結構中,其中包含列出這些相依項目的 pom.xml
檔案,然後執行它。
以下提供範例 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 搭配使用。
您應該可以取得匯出的 JavaScript 檔案,並在安裝這些相依項目的之後執行它(例如,使用 npm install
)。
以下提供範例 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 搭配使用。
安裝這些依賴項後,您應該可以取得匯出的 JavaScript 檔案並執行它(例如,使用 pip3 install
)。
以下是範例 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
等)。
接著,將新套件新增為 code-export
中的 package.json
的相依套件。
最後,從專案的根目錄執行 yarn
,然後使用 yarn watch
建置專案(有關取得本地建置的完整詳細資料,請 按這裡)。
2. 更新定位器和指令
程式碼輸出的重點在於特定語言的字串,這些字串會轉換成輸出的程式碼。其中最重要的是指令和定位策略(例如「by」查詢的語法)。
對於特定語言,會有一個檔案對應到每一個語言,以及附帶的測試檔案。
您可以在 packages/code-export-java-junit
中看到範例。
在宣告新指令時,您可以指定其輸出 作為字串,或 作為指定縮排層級的物件)。
code-export 內建一個美化程式,用來控制輸出程式碼的縮排。如果指令的輸出很詳細,而您想要明確表示,這個結構會很有用。或者如果指令會變更其後指令的縮排層級。
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. 測試和調整
針對程式碼輸出的最佳端對端測試是輸出系列測試,並驗證它們會如你預期般執行。
從開發版本中,你可以存取種子測試。這是驗證所有標準程式庫指令是否適用於你的新語言的良好起點。
測試、修正,然後再次測試,直到你對最終結果有信心為止。
7. 提交 PR
您已完成艱難的部分。現在只需提交 PR 即可。請針對 v3
分支 執行此操作。