アクティビティ
最新
バナーの背景画像
UI Automation のアクティビティ
最終更新日 2024年4月3日

JS スクリプトを挿入

UiPath.Core.Activities.InjectJsScript

UiElement に対応する Web ページのコンテキストで JavaScript コードを実行します。

プロパティ

入力
  • ScriptCode - 実行する JavaScript のコード。文字列でコードを直接入力できるほか、実行するコードを収めた .js ファイルへのフル パスを追加することもできます。下記の例のように、単一の匿名関数を記述する必要があります。
    function (element, input) {
        return "result";
    }function (element, input) {
        return "result";
    }
ここで、element は呼び出し元の UI ノードに対応する HTML 要素を表し、input は、呼び出し元によって提供される入力文字列を表します。
  • InputParameter - JavaScript コードの入力データです (文字列または String 型変数)。
  • Target.Selector - アクティビティの実行時に特定の UI 要素の検索に使用する Text プロパティです。実際には、検索しようとする GUI 要素とそのいくつかの親要素の属性を指定する XML フラグメントです。
  • Target.TimeoutMS - アクティビティの実行が完了するまで待機する時間をミリ秒で指定します。指定した時間が経過しても実行が完了しない場合には、SelectorNotFoundException 例外をスローします。既定値は 30000 ミリ秒 (30 秒) です。
  • Target.WaitForReady - アクションを実行する前に、ターゲットが準備完了になるまで待ちます。次のオプションを使用できます。

    • NONE - ターゲット要素以外の要素の読み込みを待たずに、アクションを実行します。たとえば、UI 要素がすべて読み込まれるまで待つことなく、Web ページからテキストを取得したり、特定のボタンをクリックしたりする場合に、このオプションを使用できます。ボタンがまだ読み込まれていない要素 (スクリプトなど) に依存している場合、これは望ましくない結果を招く可能性があります。
    • Interactive/Complete - 実際に操作を実行する前に、対象アプリのすべての UI 要素が存在するようになるまで待ちます。

      アプリケーションが対話または完了のどちらのステートにあるか調べるには、以下のタグを検証します。

    • Desktop applications - <wnd> タグ、<ctrl> タグ、<java> タグ、または <uia> タグの存在を確認するために wm_null メッセージが送信されます。存在する場合、アクティビティが実行されます。
    • Web アプリケーション:
    1. Internet Explorer - <webctrl> タグは、HTML ドキュメントの Ready ステートが Complete に設定されているかどうかを確認するために使用されます。また、Busy ステートは「False」に設定されている必要があります。
    2. Others - <webctrl> タグは、HTML ドキュメントの Ready ステートが Complete であるかどうかを確認するために使用されます。
    • SAP applications - 最初に <wnd> タグを確認した後、SAP 固有の API を使用して、セッションがビジーかどうかを検出します。
  • Target.Element - 別のアクティビティから返される UiElement 変数を使用します。このプロパティを Selector プロパティと一緒に使用することはできません。このフィールドでは UiElement 変数のみサポートされています。
  • Target.ClippingRegion - UiElement を基準とし、左、上、右、下の方向で、クリッピング四角形 (ピクセル単位) を定義します。正と負の両方の値をサポートしています。
出力
  • ScriptOutput - JavaScript コードから返される文字列の結果です。
共通
  • 表示名 - アクティビティの表示名です。
  • エラー発生時に実行を継続 - アクティビティが例外をスローした場合でも、ワークフローを継続するかどうかを指定します。このフィールドでは Boolean 値 (True、False) のみサポートされています。既定値は False です。その結果、フィールドが空白で例外がスローされると、プロジェクトの実行が停止します。値を True に設定すると、プロジェクトの実行はエラーに関係なく継続されます。

    注: このアクティビティが [トライ キャッチ] に含まれていて、[エラー発生時に実行を継続] プロパティの値が True の場合、プロジェクトが実行されたときにエラーは発生しません。
その他
  • プライベート - オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。
オプション
  • 実行環境 - スクリプトを実行する JavaScript 環境です。

    • Isolated - スクリプトは HTML 要素にはアクセスできますが、ページ変数やページ コードにはアクセスできません。スクリプト実行がページと競合しないようにする場合は、このオプションを使用します。
    • Page - スクリプトは HTML 要素、ページ変数、ページ コードにアクセスできます。ページ変数 (例: jQuery $) へのアクセス、またはページ コードの操作 (例: window.alert) が必要な場合は、このオプションを使用します。MV3 拡張機能に固有の既知の問題を修正するには、このオプションを使用する必要があります。

すべての [JS スクリプトを挿入] アクティビティの [実行環境] プロパティは、[プロジェクト設定] から変更できます。

注: [実行環境] オプションは、v22.12 以降の UiPath.UIAutomation.Activities で使用できます。

[JS スクリプトを挿入] アクティビティの使用例

[JS スクリプトを挿入] アクティビティは、ブラウザーを開いてそれらのページ内の .js ファイルを処理するために使用されます。ブラウザー拡張機能をインストールして有効化しておく必要があります。

このアクティビティの使用方法を例示するために、ブラウザーを開き、ユーザーが指定したテキストを含むアラートを表示する例を作成しました。

サンプルと同等のオートメーション プロセスは以下のように構築できます。

  1. Studio を開いて、新しいプロセスを作成します。

    注: .js ファイルは必ずプロジェクト フォルダーに配置してください。この例では、ファイル example.js を使用しました。
  2. ワークフロー デザイナーに [シーケンス] をドラッグします。

    • 次の変数を作成します。

      変数名

      変数の型

      既定値

      TextToWrite

      GenericValue

       
  3. [代入] アクティビティを [シーケンス] コンテナー内部にドラッグします。

    • [プロパティ] パネルで、[表示名] フィールドに Ask for message を追加します。
    • "Please insert the text to be written on the web page."Label (ラベル) フィールドに追加します。
    • メッセージ "Please insert text"Title (タイトル) フィールドに追加します。
    • Result (値) フィールドに変数 textToWrite を追加します。
  4. [ブラウザーを開く] アクティビティを、[入力ダイアログ] アクティビティの下に配置します。

    • アドレス "https://www.google.com/"Url フィールドに追加します。
  5. [JS スクリプトを挿入][ブラウザーを開く] アクティビティの [本体] コンテナー内にドラッグします。

    • [プロパティ] パネルで、[表示名] フィールドに Show Alert を追加します。
    • InputParameter フィールドに変数 TextToWrite を追加します。
    • "Inject JS\example.js"ScriptCode フィールドに追加します。
  6. プロセスを実行します。ロボットは新しいブラウザー ページを開き、ユーザーが追加したテキストを含むアラートを提供します。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.