Selenium IDE

Selenium IDE

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

›概念

はじめに

  • はじめに
  • Selenium IDE 拡張機能ID
  • ヘルスチェック

概念

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

IDEの拡張

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

APIリファレンス

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

リクエストの送受信

Selenium IDEは、そのメッセージングにHTTPから着想を得ています。

しかし、そのメッセージングは少し異なるアプローチをとっています(プラグインが独自のルーターを開発するのを避けるため)。

IDEへのリクエスト

リクエストは、特定のキーを持つJSONオブジェクトであり、IDEでの最終的な実行を決定します。

{
  uri: "/path/to/resource",
  verb: "get",
  payload: {
    data: "request body goes here"
  }
}
  • uri - IDE機能のリソースロケーター(例:コマンドの記録、ロケーターの解決)
  • verb - 修飾子関数(例:getは情報を取得し、postは新しい情報を追加します。HTTPと同じです)
  • payload - リクエストボディ、操作を実行するために必要な情報、uriからuriへと変化します。

リクエストの送信

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

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

IDEからのリクエスト

IDEからのリクエストは、キーと構造が異なります。IDEには、ネストされたルーティングを処理するルーターがあります(例:uri: /path/to/nested/uri)。プラグイン開発者が独自のルーターを開発または実装するのを避けるために、異なるアプローチが採用されました。

{
  action || event: "an action to perform or an event to adhere",
  request keys...
}
  • actionまたはevent - 実行するアクションまたは対応するイベント。アクションはコマンドの実行またはコードの出力であり、イベントは再生の開始、または記録の開始または終了です。
  • 追加キー - 実行されるactionまたはeventによって決定される追加キー。

注記:actionまたはeventのいずれかのみが定義され、両方が定義されることはありません。

リクエストの受信

browser.runtime.onMessageExternalを実装する必要があります。

browser.runtime.onMessageExternal.addListener((message, sender, sendResponse) => {
    if (message.action === "execute" && message.command) {
      console.log("I need to execute a command");
      return sendResponse(true); // I've finished execution
    }
    if (message.event === "playbackStarted") {
      console.log("IDE notified me a playback was started"); // Responding to events is optional
    }
});

非同期リクエスト

プロミスを待機する必要がある場合や、DOMを変更するコマンドを実行する場合など、一部のリクエストは非同期です。

Selenium IDEは待機するように通知する必要があります。sendResponseが呼び出されるまで待機します。Selenium IDEが**永遠に待機し続ける状態になるのを防ぐ**ため、エラーが発生した場合は、IDEにエラーを返すようにしてください。

Selenium IDEに待機させるには、onMessageExternalイベントハンドラーでreturn trueにし、最終結果を返すためにsendResponseを保持します。

browser.runtime.onMessageExternal.addListener((message, sender, sendResponse) => {
    if (message.action === "execute" && message.command && message.command.command === "myAsyncCommand") {
      executingSomeAsyncFunctionality(message.command).then(() => {
        return sendResponse(true);
      });
      return true;
    }
});
最終更新日: 2019年2月21日
← ヘルスチェックエラー処理 →
  • IDEへのリクエスト
    • リクエストの送信
  • IDEからのリクエスト
    • リクエストの受信
Selenium IDE
ドキュメント
はじめにAPIリファレンスプラグインの構築
コミュニティ
Slackirc (#selenium)Google グループ
その他
ブログGitHubStar旧IDE
Copyright © 2019 Software Freedom Conservancy (SFC)