Selenium IDE

Selenium IDE

  • ドキュメント
  • API
  • プラグイン
  • ブログ
  • ヘルプ

›はじめに

はじめに

  • はじめる
  • コマンドラインランナー
  • 制御フロー
  • コードエクスポート
  • よくある質問

APIリファレンス

  • コマンド
  • 引数

コードエクスポート

はじめる

テストまたはテストスイートをWebDriverコードにエクスポートするには、テストまたはスイートを右クリックし、「エクスポート」を選択して、ターゲット言語を選択し、「エクスポート」をクリックします。

code-export-right-click code-export-menu

これにより、ターゲット言語のエクスポートされたコードを含むファイルがブラウザのダウンロードディレクトリに保存されます。

オリジントレーシングコードコメント

エクスポート時に、オリジントレーシングコードコメントを有効にするオプションのトグルがあります。

これにより、エクスポートされたファイルにインラインコードコメントが配置され、それを生成したSelenium IDEのテストステップに関する詳細が表示されます。

サポートされているエクスポート

現在、以下の言語とテストフレームワークへのエクスポートがサポートされています。

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

Seleniumの公式にサポートされているすべてのプログラミング言語バインディング(例:Java、JavaScript、C#、Python、Ruby)を、各言語の少なくとも1つのテストフレームワークでサポートすることを目指しています。

新しい言語や、既存の言語に対する新しいテストフレームワークの追加には、皆様からの貢献を歓迎いたします。方法については、貢献方法をご覧ください。

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.WebDriverまたは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ファイルを標準的な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

貢献方法

コードエクスポートは、貢献を容易にするためにモジュール方式で構築されました。

各言語とテストフレームワークには、エクスポートされるコードを含む独自のpackageがあります。各コードスニペットは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ブランチに対して提出してください。

最終更新日:2019年10月28日
← 制御フローよくある質問 →
  • はじめる
    • オリジン追跡コードコメント
  • サポートされているエクスポート
    • C# NUnit
    • C# xUnit
    • Java JUnit
    • JavaScript Mocha
    • Python pytest
    • Ruby RSpec
  • 貢献方法
    • 1. 新しいパッケージを作成する
    • 2. ロケーターとコマンドを更新する
    • 3. フックを作成する
    • 4. 言語固有の属性を更新する
    • 5. 統合する
    • 6. テストと調整を行う
    • 7. PRを送信する
Selenium IDE
ドキュメント
はじめにAPIリファレンスプラグインの構築
コミュニティ
Slackirc (#selenium)Google グループ
その他
ブログGitHubStar旧IDE
Copyright © 2019 Software Freedom Conservancy (SFC)