Selenium IDE

Selenium IDE

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

›はじめに

はじめに

  • 入門
  • Selenium IDE 拡張機能ID
  • ヘルスチェック

概念

  • リクエスト
  • エラー処理
  • コードの出力
  • コードのエクスポート

IDE の拡張

  • コマンドの追加
  • IDE イベント
  • セットアップとティアダウンの出力

API リファレンス

  • はじめに
  • システム
  • 再生
  • 記録
  • ポップアップ
  • エクスポート

プラグイン入門

プラグインは、追加のコマンドとロケータの追加、テスト実行前後のセットアップのブートストラップ、記録プロセスへの影響を通じて、Selenium IDE のデフォルトの動作を拡張できます。

Selenium IDE は、最新のブラウザで動作するために WebExtensions 標準を使用しています(詳細については、Mozilla の最初の拡張機能の記事を参照してください)。拡張機能間の通信は、外部メッセージングプロトコルを介して処理されます。その例はこちらで確認できます。

この記事では、WebExtension の開発に関する知識があることを前提としており、Selenium IDE 固有の機能についてのみ説明します。

APIの呼び出し

Selenium IDE APIは、browser.runtime.sendMessageを使用して呼び出すことができます。

署名の例は、browser.runtime.sendMessage(SIDE_ID, request)となります。ここで、SIDE_IDは、IDEの公式拡張機能IDを参照します。これはこちらで確認できます。

リクエスト

リクエストは、browser.runtime.sendMessageの2番目の引数であり、HTTPの考え方と似ています。

{
  uri: "/register",
  verb: "post",
  payload: {
    name: "Selenium IDE plugin",
    version: "1.0.0"
  }
}
  • uri - IDE機能へのリソースロケータ(例:コマンドの記録、ロケータの解決)
  • verb - 修飾関数(例:getはものを取得し、postは新しいものを追加します。これはhttpの場合と同様です)

IDEは有効な応答を返信します。エラーが発生した場合、IDEウィンドウのDevToolsを開いて確認できます。

browser.runtime.sendMessage(SIDE_ID, request).then(response => {
  console.log("it worked!");
});

マニフェスト

プラグインは、IDEの機能に対する変更と追加を宣言するマニフェストをIDEに提供します。

{
  name: "New Plugin",
  version: "1.0.0",
  commands: [
    {
      id: "newCommand",
      name: "new command",
      type: "locator",
      docs: {
        description: "command description",
        target: { name: "command target", value: "command target description" },
        value: { name: "command value", value: "command value description" }
      }
    },
    {
      id: "anotherCommand",
      name: "another command",
      type: "locator",
      docs: {
        description: "another command description",
        target: "locator",
        value: "pattern"
      }
    }
  ],
  locators: [
    {
      id: "locator"
    }
  ],
  dependencies: {
    "selenium-webdriver": "3.6.0"
  }
}

一般情報

  • name - 必須。プラグインの名前。
  • version - 必須。プラグインのバージョン。

コマンド

IDEに追加される新しいコマンドのリスト。各コマンドはいくつかのパラメータを受け取ります。

  • id - 必須。コマンドの一意の識別子(camelCase)。
  • name - 必須。コマンドの自然言語名。これはユーザーに表示されます。
  • type - オプション。locatorまたはregionのいずれかになります。findボタンとselectボタンを有効にするために使用されます。(注意: typeはまだベータ版であり、将来変更される可能性があります)。
  • docs - オプション。コマンドの説明、ターゲット、および値のメタデータのコレクション。または、名前を文字列として指定することにより、既存のコマンドターゲットまたは値(別名ArgTypes)を使用できます(サブコレクションではなく)。完全なリストについては、ArgTypes.jsのArgTypesを参照してください。

ロケータ

注意: ロケータはまだ開発中であり、近日中に追加されます。

IDEに追加される新しいロケータのリスト。各ロケータはidのみを受け取ります。

  • id - 必須。ロケータの一意の識別子で、ユーザーに表示されます(例:name、css)。

依存関係

Node.jsの追加の依存関係。これらはコマンドラインランナーを使用して実行するときにダウンロードして使用します。

依存関係は、name:versionのようなkey:valueの辞書です。ここで、nameはnpmで公開されている名前で、versionはnpmに公開されている有効なsemverです。

プラグインの登録

プラグインをSelenium IDEに登録するには、IDEウィンドウが開いていること、および正しいSelenium IDE拡張機能IDを使用していることを確認してください。

次のメッセージを送信します。

browser.runtime.sendMessage(process.env.SIDE_ID, {
  uri: "/register",
  verb: "post",
  payload: {
    name: "Selenium IDE plugin",
    version: "1.0.0",
    commands: [
      {
        id: "successfulCommand",
        name: "successful command"
      },
      {
        id: "failCommand",
        name: "failed command"
      }
    ]
  }
}).catch(console.error);

ここで、payloadはマニフェストです。

最終更新日:2019年5月14日
Selenium IDE 拡張機能ID →
  • APIの呼び出し
    • リクエスト
  • マニフェスト
    • 一般情報
    • コマンド
    • ロケータ
    • 依存関係
  • プラグインの登録
Selenium IDE
ドキュメント
入門APIリファレンスプラグインの作成
コミュニティ
Slackirc (#selenium)Google グループ
詳細
ブログGitHubStarレガシーIDE
Copyright © 2019 Software Freedom Conservancy (SFC)