(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-27
(45)【発行日】2024-06-04
(54)【発明の名称】ユーザーインターフェイスの操作パターンを生成するプログラムおよび操作パターン生成装置
(51)【国際特許分類】
G06F 11/36 20060101AFI20240528BHJP
G06F 3/0484 20220101ALI20240528BHJP
【FI】
G06F11/36 184
G06F3/0484
(21)【出願番号】P 2020085961
(22)【出願日】2020-05-15
【審査請求日】2023-03-17
(73)【特許権者】
【識別番号】000001270
【氏名又は名称】コニカミノルタ株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】原田 一樹
【審査官】大倉 崚吾
(56)【参考文献】
【文献】特開2018-116497(JP,A)
【文献】特開2011-039786(JP,A)
【文献】特開2013-037580(JP,A)
【文献】特開2010-079342(JP,A)
【文献】特開2005-266954(JP,A)
【文献】特開2018-092362(JP,A)
【文献】特開2020-067859(JP,A)
【文献】特開2019-021341(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/36
G06F 3/0484
(57)【特許請求の範囲】
【請求項1】
1以上のプロセッサーに命令を実行させるプログラムであって、
前記命令は、
1つ以上のウェブUI(User Interface)から複数の入力項目の各々の識別子と、前記複数の入力項目の各々に設定され得るパラメータの候補とを取得するステップと、
前記識別子と、前記パラメータの候補とに基づいて、前記ウェブUIにおいて実行され得る操作パターンリストを生成するステップと
、
前記ウェブUIが含む前記複数の入力項目の変更、または前記複数の入力項目の各々に設定され得るパラメータの候補の変更のいずれかを検出するステップと、
検出の結果に基づいて、前記複数の入力項目の変更、または前記複数の入力項目の各々に設定され得るパラメータの候補の変更を前記操作パターンリストに反映するステップとを含
み、
前記複数の入力項目の各々に設定され得るパラメータの候補の変更は、前記パラメータの候補の数の増加、または前記パラメータの候補の数の減少のいずれかを含む、プログラム。
【請求項2】
1以上のプロセッサーに命令を実行させるプログラムであって、
前記命令は、
1つ以上のウェブUI(User Interface)から複数の入力項目の各々の識別子と、前記複数の入力項目の各々に設定され得るパラメータの候補とを取得するステップと、
前記識別子と、前記パラメータの候補とに基づいて、前記ウェブUIにおいて実行され得る操作パターンリストを生成するステップと
、
前記ウェブUIが含む前記複数の入力項目の変更、または前記複数の入力項目の各々に設定され得るパラメータの候補の変更のいずれかを検出するステップと、
検出の結果に基づいて、前記複数の入力項目の変更、または前記複数の入力項目の各々に設定され得るパラメータの候補の変更を前記操作パターンリストに反映するステップとを含
み、
前記複数の入力項目の変更は、新しい入力項目の追加、または既存の入力項目の削除のいずれかを含む、プログラム。
【請求項3】
1以上のプロセッサーに命令を実行させるプログラムであって、
前記命令は、
1つ以上のウェブUI(User Interface)から複数の入力項目の各々の識別子と、前記複数の入力項目の各々に設定され得るパラメータの候補とを取得するステップと、
前記識別子と、前記パラメータの候補とに基づいて、前記ウェブUIにおいて実行され得る操作パターンリストを生成するステップと
、
前記ウェブUIが含む前記複数の入力項目の変更、または前記複数の入力項目の各々に設定され得るパラメータの候補の変更のいずれかを検出するステップと、
検出の結果に基づいて、前記複数の入力項目の変更、または前記複数の入力項目の各々に設定され得るパラメータの候補の変更を前記操作パターンリストに反映するステップとを含
み、
前記複数の入力項目の変更、または前記複数の入力項目の各々に設定され得るパラメータの候補の変更を前記操作パターンリストに反映するステップは、
前記複数の入力項目の変更に関する情報、または前記複数の入力項目の各々に設定され得るパラメータの候補の変更に関する情報をディスプレイに表示するステップと、
前記操作パターンリストに反映させる項目を選択するための入力を受け付けるステップとを含む、プログラム。
【請求項4】
1以上のプロセッサーに命令を実行させるプログラムであって、
前記命令は、
1つ以上のウェブUI(User Interface)から複数の入力項目の各々の識別子と、前記複数の入力項目の各々に設定され得るパラメータの候補とを取得するステップと、
前記識別子と、前記パラメータの候補とに基づいて、前記ウェブUIにおいて実行され得る操作パターンリストを生成するステップと
、
前記複数の入力項目の優先度の入力を受け付けるステップとを含み、
ウェブUIから前記複数の入力項目の前記識別子と、前記複数の入力項目の前記識別子の各々に設定され得る前記パラメータの候補とを取得するステップは、前記優先度に基づいて、優先度の高い入力項目の識別子から順に取得するステップを含む、プログラム。
【請求項5】
前記操作パターンリストを生成するステップは、
前記識別子の各々と、前記パラメータの候補の各々とを関連付けた第1のリストを生成するステップと、
前記第1のリストに基づいて、前記複数の入力項目の各々が取り得る前記パラメータの組み合わせを含む第2のリストを生成するステップと、
前記第2のリストに基づいて、前記操作パターンリストを生成するステップとを含む、請求項1
~4のいずれかに記載のプログラム。
【請求項6】
前記操作パターンリストは、
前記複数の入力項目の各々が取り得る前記パラメータの組み合わせごとに生成され、
前記操作パターンリストを投入される情報処理装置が解釈可能な設定情報またはスクリプトを含む、請求項
5に記載のプログラム。
【請求項7】
前記命令は、
前記ウェブUIに含まれるname属性から、各前記識別子を取得するステップと、
前記ウェブUIに含まれるvalue属性から、各前記パラメータの候補を取得するステップとをさらに含む、請求項1~
6のいずれかに記載のプログラム。
【請求項8】
前記命令は、
ユーザーによる前記複数の入力項目のいずれかへの入力を検出するステップと、
ユーザーによる入力を受け付けた入力項目の前記識別子を取得するステップと、
前記ユーザーによる入力を受け付けた入力項目に設定され得る前記パラメータの候補を取得するステップとをさらに含む、請求項1~
7のいずれかに記載のプログラム。
【請求項9】
前記ウェブUIは、第1のウェブUIと、第2のウェブUIとを含み、
前記命令は、
前記第1のウェブUIにおける第1の操作パターンリストと、前記第2のウェブUIにおける第2の操作パターンリストとを生成するステップと、
前記第1の操作パターンリストと、前記第2の操作パターンリストとに基づいて、前記第1のウェブUIおよび前記第2のウェブUIにおいて実行され得る操作パターンを含む第3の操作パターンリストを生成するステップとをさらに含む、請求項1~
8のいずれかに記載のプログラム。
【請求項10】
前記1つ以上のウェブUIから複数の入力項目の識別子と、前記複数の入力項目の各々に設定され得るパラメータの候補とを取得するステップは、ユーザーによって選択された入力項目の識別子と、前記ユーザーによって選択された入力項目の各々に設定され得るパラメータの候補とを取得するステップを含む、請求項1~
9のいずれかに記載のプログラム。
【請求項11】
前記命令は、前記操作パターンリストに含まれる操作パターンの個数の上限値の入力を受け付けるステップをさらに含み、
前記複数の入力項目の前記識別子と、前記パラメータの候補とに基づいて、前記ウェブUIにおいて実行され得る前記操作パターンリストを生成するステップは、前記上限値以内の数の操作パターンを含む前記操作パターンリストを生成するステップを含む、請求項
4に記載のプログラム。
【請求項12】
請求項1~
11のいずれかに記載のプログラムを格納したメモリーと、
前記プログラムを実行するための1以上のプロセッサーとを備えた、操作パターン生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概してユーザーインターフェイスの解析プログラムに関し、より特定的には、ユーザーインターフェイスが受け付け得る操作パターンを生成する技術に関する。
【背景技術】
【0002】
近年、画像形成装置等の多種多様な情報処理装置において、ウェブユーザーインターフェイス(以下、「ウェブUI(User Interface)」と表す)が使用されている。ウェブUIは、多くのコンピューターが備えるウェブブラウザ機能により閲覧可能であるため、ウェブUIの普及はユーザーの利便性を高めている。
【0003】
一方で、ウェブUIを提供する情報処理装置が多機能化することにより、ウェブUIの入力項目における操作パターンも膨大な数となっている。その結果、これらのウェブUIの動作確認評価、あるいはウェブUIのナビゲートシステムの開発等の工数も増大している。そのため、効率的にこれらのウェブUIの操作パターンを生成し、利用するための技術が望まれている。
【0004】
ウェブUIに関し、例えば、特開2012-039478号公報(特許文献1)は、「Webブラウザにより表示した第1の操作画面を介してユーザが情報処理装置が備える機能の実行を指示した場合に、予め設定された実行条件を含むスクリプトを生成する生成手段と生成されたスクリプトをWebサーバに送信すると共にユーザによる実行条件の変更を受け付ける第2の操作画面をWebサーバに要求する要求手段とWebサーバから受け取った第2の操作画面を介するユーザによる実行条件の変更を受け付け、その結果をWebサーバに送信する送信手段と実行条件の変更結果に従って編集されたスクリプトをWebサーバから受け取り編集されたスクリプトに基づいて機能を実行する実行手段とを備える」情報処理装置を開示している([要約]参照)。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に開示された技術によると、ウェブUIから操作パターンを生成することができない。したがって、ウェブUIから操作パターンを生成する技術が必要とされている。
【0007】
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、ウェブUIから操作パターンを生成する技術を提供することにある。
【課題を解決するための手段】
【0008】
ある実施の形態に従うと、1以上のプロセッサーに命令を実行させるプログラムが提供される。命令は、1つ以上のウェブUIから複数の入力項目の各々の識別子と、複数の入力項目の各々に設定され得るパラメータの候補とを取得するステップと、識別子と、パラメータの候補とに基づいて、ウェブUIにおいて実行され得る操作パターンリストを生成するステップとを含む。
【0009】
ある局面において、操作パターンリストを生成するステップは、識別子の各々と、パラメータの候補の各々とを関連付けた第1のリストを生成するステップと、第1のリストに基づいて、複数の入力項目の各々が取り得るパラメータの組み合わせを含む第2のリストを生成するステップと、第2のリストに基づいて、操作パターンリストを生成するステップとを含む。
【0010】
ある局面において、操作パターンリストは、複数の入力項目の各々が取り得るパラメータの組み合わせごとに生成され、操作パターンリストを投入される情報処理装置が解釈可能な設定情報またはスクリプトを含む。
【0011】
ある局面において、命令は、ウェブUIに含まれるname属性から、各識別子を取得するステップと、ウェブUIに含まれるvalue属性から、各パラメータの候補を取得するステップとをさらに含む。
【0012】
ある局面において、命令は、ユーザーによる複数の入力項目のいずれかへの入力を検出するステップと、ユーザーによる入力を受け付けた入力項目の識別子を取得するステップと、ユーザーによる入力を受け付けた入力項目に設定され得るパラメータの候補を取得するステップとをさらに含む。
【0013】
ある局面において、ウェブUIは、第1のウェブUIと、第2のウェブUIとを含む。命令は、第1のウェブUIにおける第1の操作パターンリストと、第2のウェブUIにおける第2の操作パターンリストとを生成するステップと、第1の操作パターンリストと、第2の操作パターンリストとに基づいて、第1のウェブUIおよび第2のウェブUIにおいて実行され得る操作パターンを含む第3の操作パターンリストを生成するステップとをさらに含む。
【0014】
ある局面において、命令は、ウェブUIが含む複数の入力項目の変更、または複数の入力項目の各々に設定され得るパラメータの候補の変更のいずれかを検出するステップと、検出の結果に基づいて、複数の入力項目の変更、または複数の入力項目の各々に設定され得るパラメータの候補の変更を操作パターンリストに反映するステップとをさらに含む。
【0015】
ある局面において、複数の入力項目の各々に設定され得るパラメータの候補の変更は、パラメータの候補の数の増加、またはパラメータの候補の数の減少のいずれかを含む。
【0016】
ある局面において、複数の入力項目の変更は、新しい入力項目の追加、または既存の入力項目の削除のいずれかを含む。
【0017】
ある局面において、複数の入力項目の変更、または複数の入力項目の各々に設定され得るパラメータの候補の変更を操作パターンリストに反映するステップは、複数の入力項目の変更に関する情報、または複数の入力項目の各々に設定され得るパラメータの候補の変更に関する情報をディスプレイに表示するステップと、操作パターンリストに反映させる項目を選択するための入力を受け付けるステップとを含む。
【0018】
ある局面において、1つ以上のウェブUIから複数の入力項目の識別子と、複数の入力項目の各々に設定され得るパラメータの候補とを取得するステップは、ユーザーによって選択された入力項目の識別子と、ユーザーによって選択された入力項目の各々に設定され得るパラメータの候補とを取得するステップを含む。
【0019】
ある局面において、命令は、複数の入力項目の優先度の入力を受け付けるステップをさらに含む。ウェブUIから複数の入力項目の識別子と、複数の入力項目の識別子の各々に設定され得るパラメータの候補とを取得するステップは、優先度に基づいて、優先度の高い入力項目の識別子から順に取得するステップを含む。
【0020】
ある局面において、命令は、操作パターンリストに含まれる操作パターンの個数の上限値の入力を受け付けるステップをさらに含む。複数の入力項目の識別子と、パラメータの候補とに基づいて、ウェブUIにおいて実行され得る操作パターンリストを生成するステップは、上限値以内の数の操作パターンを含む操作パターンリストを生成するステップを含む。
【0021】
他の実施の形態に従うと、上記に記載のプログラムを格納したメモリーと、プログラムを実行するための1以上のプロセッサーとを備えた操作パターン生成装置が提供される。
【発明の効果】
【0022】
ある実施の形態に従うと、ウェブUIから操作パターンを生成することが可能である。
この開示内容の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの本開示に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0023】
【
図1】ウェブUIから操作パターンリストを生成する手順の一例を示す図である。
【
図2】HTML(HyperText Markup Language)ファイルの第1の例を示す図である。
【
図3】HTMLファイルの第2の例を示す図である。
【
図4】操作画面100から作成される第1のリスト410および第2のリスト420の一例を示す図である。
【
図5】第1のリスト410および第2のリストから操作パターンリスト105を生成する様子の一例を示す図である。
【
図6】操作パターンリストの第2の生成方法の手順の一例を示す図である。
【
図7】パターン生成アプリケーション104による操作パターンリストの第3の生成方法の一例を示す図である。
【
図8】パターン生成アプリケーション104による操作パターンリストの第4の生成方法の一例を示す図である。
【
図10】パターン生成アプリケーション104による操作パターンリストの更新方法の一例を示す図である。
【
図11】パターン生成アプリケーション104のソフトウェア構成の一例を示す。
【
図12】パターン生成アプリケーション104を実行する操作パターン生成装置1200のハードウェア構成の一例を示す図である。
【
図13】パターン生成アプリケーション104の全体の動作のフローチャートの一例である。
【
図14】コンテンツ情報解析ルーチンのフローチャートの一例である。
【
図15】パラメータパターン生成ルーチンのフローチャートの一例である。
【
図16】操作パターンリスト生成ルーチンのフローチャートの一例である。
【
図17】入力項目/パラメータリスト更新ルーチンのフローチャートの一例である。
【
図18】差異パターンリスト反映処理ルーチンのフローチャートの一例である。
【発明を実施するための形態】
【0024】
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【0025】
<A.操作パターンの取得情報>
本実施の形態に従うプログラムが、ウェブUIから操作パターンのリスト(以下、「操作パターンリスト」と表す)を生成する手順について説明する。これ以降の説明におけるプログラムの動作は、当該プログラムを格納したメモリーと、1以上のプロセッサーとを備えるコンピューターにより実行されるものとする。また、本実施の形態に従うプログラムは、画像形成装置等を含む任意の情報処理装置のウェブUIに対して適用可能である。
【0026】
図1は、ウェブUIから操作パターンリストを生成する手順の一例を示す図である。
図1を参照して、本実施の形態に従うプログラムの動作の全体像を説明する。操作画面100は、入力項目101A~101Eを備える。入力項目は、プルダウンメニュー、チェックボックス、ラジオボタンまたはボタン等の任意の入力フォームを指す。
図1の例では、本実施の形態に従うプログラムは、操作画面100から操作パターンを生成する。
【0027】
「操作パターン」とは、操作画面が備える各入力項目において設定されるパラメータの組み合わせの1つを表す。操作画面100の場合、例えば、入力項目101A「パラメータ1」、入力項目101B「パラメータa」、入力項目101C「aaaにチェック」、入力項目101D「ONを選択」および入力項目101E「実行ボタンを押下」の組み合わせが1つの操作パターンになり得る。「操作パターンリスト」は、操作画面における全ての操作パターンを含むリストである。
【0028】
操作画面100(ウェブUI)は、ウェブアプリケーションの画面コード102として定義される。画面コード102は、HTMLファイル、CSS(Cascading Style Sheets)ファイルおよびJavascript(登録商標)ファイルの一部または全ての組み合わせによって定義され得る。
【0029】
画面コード102は、コンピューターにインストールされたウェブブラウザ103によって解釈され、コンピューターのディスプレイに描画される。ウェブブラウザ103は、DOM(Document Object Model)を扱う機能を備える。DOMは、HTMLの各要素(ノード)を階層的な構造として識別し、各ノードにアクセスする仕組みを提供する。
【0030】
パターン生成アプリケーション104(本実施の形態に従うプログラム)は、ウェブブラウザ103のDOMを扱う機能を利用して、操作画面100を解析して、操作画面100から操作パターンリスト105を生成する。
【0031】
操作パターンリスト105は、操作画面100が備える入力項目101A~101Eの各々に設定され得るパラメータの全ての組み合わせ(ユーザーが入力し得る全てのパラメータの組み合わせ)を含むリストである。言い換えれば、操作パターンリスト105は、操作画面100において入力可能な全ての設定の組み合わせを含むリストである。
【0032】
操作パターンリスト105は、複数の操作パターン106を含み得る。ある局面において、操作パターン106は、操作パターンリスト105を投入される情報処理装置によって解釈および実行可能なフォーマットのスクリプトであってもよい。その場合、パターン生成アプリケーション104は、入力項目101A~101Eの各々のパラメータを含むスクリプトを生成して、当該スクリプトを操作パターンリスト105に含める。他の局面において、操作パターン106は、スクリプトに含めるための各入力項目のパラメータを含んでいてもよい。
【0033】
開発者は、操作パターンリスト105を用いることで、操作画面100の動作テスト、操作画面100のナビゲーションシステムの開発、または操作パターンリスト105を用いた機械学習等を容易に行い得る。
【0034】
ある局面において、パターン生成アプリケーション104は、複数の情報処理装置またはアプリケーションに対して投入するための操作パターンリスト105を作成する場合、投入先ごとに、異なるスクリプトまたは異なるフォーマットの設定情報を含む操作パターンリスト105を生成してもよい。
【0035】
(A-1.操作パターンリストの第1の生成方法)
次に、
図2~
図5を参照して、パターン生成アプリケーション104による操作パターンリストの第1の生成方法の一例について説明する。
【0036】
図2は、HTMLファイルの第1の例を示す図である。
図2を参照して、パターン生成アプリケーション104がどのようにしてウェブUIから入力項目と、入力項目のパラメータの候補とを取得するかについて説明する。
【0037】
HTMLファイルの各要素(タグ)は、name属性およびvalue属性を設定され得る。name属性は、要素を特定するために使用され得る。value属性は、各要素のオブジェクトのパラメータ等を含む。例えば、パターン生成アプリケーション104は、name属性により、入力項目を構成する特定の要素を指定し、value属性によりその要素のパラメータを取得し得る。
【0038】
図2の例では、操作画面200は、血液型のプルダウンメニュー201と、星座のプルダウンメニュー202とを備える。血液型のプルダウンメニュー201は、HTMLタグ203によって定義され、星座のプルダウンメニュー202は、HTMLタグ204によって定義される。パターン生成アプリケーション104は、HTMLタグ203およびHTMLタグ204を解析して、操作画面200から、血液型のプルダウンメニュー201および星座のプルダウンメニュー202の各々の入力項目の識別子と、各入力項目に設定され得るパラメータの候補とを取得する。
【0039】
まず、パターン生成アプリケーション104は、操作画面200を構成する要素をDOMとして取得し、DOMに含まれる各ノードを解釈し、全てのname属性を取得する。
図2の例では、パターン生成アプリケーション104は、bloodおよびhoroscopeのname属性(入力項目の識別子)を取得する。
【0040】
次に、パターン生成アプリケーション104は、「name属性=blood」のノード(要素)をDOMから検索し、入力項目として「血液型のプルダウンメニュー201のselectタグ」を取得し得る。次に、パターン生成アプリケーション104は、selectタグの下位のoptionタグの各々に設定されるvalue属性の値を取得する。それにより、パターン生成アプリケーション104は、血液型のプルダウンメニュー201に設定され得るパラメータの候補である「value=A~AB」を取得する。
【0041】
同様に、パターン生成アプリケーション104は、「name属性=horoscope」のノード(要素)をDOMから検索し、入力項目として「星座のプルダウンメニュー202のselectタグ」を取得し得る。次に、パターン生成アプリケーション104は、selectタグの下位のoptionタグの各々に設定されるvalue属性の値を取得する。それにより、パターン生成アプリケーション104は、星座のプルダウンメニュー202に設定され得るパラメータの候補である「value=Aries~Pisces」を取得する。
【0042】
上記のように、パターン生成アプリケーション104は、HTMLファイルのタグに設定されているname属性およびvalue属性を用いることで、ウェブUIが備える1以上の入力項目の識別子と、各入力項目に設定され得るパラメータの候補とを取得し得る。ある局面において、パターン生成アプリケーション104は、name属性の代わりにid属性を用いて入力項目の識別子を取得し得る。
【0043】
ある局面において、ウェブUIは、XML(eXtensible Markup Language)ファイルによって定義されてもよい。その場合、パターン生成アプリケーション104は、name属性およびvalue属性に対応するタグ等に基づいて、XMLファイルから入力項目およびそのパラメータの候補を取得し得る。
【0044】
図3は、HTMLファイルの第2の例を示す図である。
図3を参照して、プルダウンメニュー以外の要素から、入力項目の識別子と、各入力項目に設定され得るパラメータの候補とを取得する具体例について説明する。
【0045】
図3の例では、操作画面300は、アンケートのチェックボックス301と、ラジオボタン302とを備える。アンケートのチェックボックス301は、HTMLタグ303によって定義され、ラジオボタン302は、HTMLタグ304によって定義される。パターン生成アプリケーション104は、HTMLタグ303およびHTMLタグ304を解析して、操作画面300から、アンケートのチェックボックス301およびラジオボタン302の各々の入力項目の識別子と、各入力項目に設定され得るパラメータの候補とを取得する。
【0046】
まず、パターン生成アプリケーション104は、操作画面300を構成する要素をDOMとして取得し、DOMに含まれる各ノードを解釈し、全てのname属性を操作画面300から取得する。
図3の例では、パターン生成アプリケーション104は、riyuおよびhyoukaのname属性(入力項目の識別子)を取得する。
【0047】
次に、パターン生成アプリケーション104は、「name属性=riyu」のノード(要素)をDOMから検索し、入力項目として「アンケートのチェックボックス301のinputタグ」を操作画面300から取得する。次に、パターン生成アプリケーション104は、inputタグの各々に設定されるvalue属性の値を操作画面300から取得する。それにより、パターン生成アプリケーション104は、アンケートのチェックボックス301に設定され得るパラメータの候補である「value=1~3」を操作画面300から取得する。ある局面において、パターン生成アプリケーション104は、同一のname属性を設定された要素を一つの入力項目として扱ってもよい。
【0048】
同様に、パターン生成アプリケーション104は、「name属性=hyouka」のノード(要素)をDOMから検索し、入力項目として「ラジオボタン302のinputタグ」を操作画面300から取得する。次に、パターン生成アプリケーション104は、inputタグの各々に設定されるvalue属性の値を操作画面300から取得する。それにより、パターン生成アプリケーション104は、ラジオボタン302に設定され得るパラメータの候補である「value=good,bad」を操作画面300から取得する。
【0049】
図4は、操作画面100から作成される第1のリスト410および第2のリスト420の一例を示す図である。操作パターンリスト105を作成するために、パターン生成アプリケーション104は、まず操作画面100が含む各入力項目および各入力項目に設定され得るパラメータから第1のリスト410と、第2のリスト420とを作成する。
【0050】
第1のリスト410は、入力項目の識別子411と、入力項目の種類412と、パラメータ候補413とを含む。入力項目の識別子411は、各入力項目を示す識別子を含む。ある局面において、パターン生成アプリケーション104は、name属性を入力項目の識別子として使用してもよい。他の局面において、パターン生成アプリケーション104は、操作画面100から入力項目を抽出したときに、各入力項目を示す任意の識別子を生成してもよい。
【0051】
入力項目の種類412は、入力項目の種類を示す識別子等の情報を含む。ある局面において、パターン生成アプリケーション104は、操作画面100から取得したHTMLタグおよびtype属性から入力項目の種類を判別してもよい。パラメータ候補413は、各入力項目が設定され得るパラメータの一覧を含む。ある局面において、パターン生成アプリケーション104は、操作画面100から取得したvalueの値をパラメータ候補413に含めてもよい。
【0052】
図4では、例えば、第1のリスト410の一行目は、入力項目101Aが、リスト(プルダウンメニュー)であり、パラメータ(1)~(3)を候補として含むことを示す。同様に第1のリスト410の二行目は、入力項目101Bが、リストであり、パラメータ(a)~(c)を候補として含むことを示す。
【0053】
パターン生成アプリケーション104は、第1のリスト410に基づいて、第2のリスト420を生成する。第2のリスト420は、操作画面100における各入力項目の設定の組み合わせ(操作パターン)のリストである。例えば、パターン(1)は、入力項目101Aにパラメータ(A1)が設定され、入力項目101Bにパラメータ(B1)が設定され、入力項目101Cにパラメータ(C1)が設定され、入力項目101Dにパラメータ(D1)が設定され、入力項目101Eにパラメータ(E1)が設定された場合の操作パターンを示す。言い換えれば、第2のリスト420は、操作パターンごとに、各入力項目に設定されるパラメータを管理したリストである。ある局面において、第2のリスト420に含まれるA1~E1等のデータは、各入力項目に直接設定されるパラメータである必要はなく、パラメータを示す識別子等であってもよい。各入力項目に直接設定されるパラメータとは、例えば、あるHTMLタグ(またはその下位のHTMLタグ)に設定され得るvalueの値であり、例えば、selectタグ(入力項目)の下層のoptionタグに指定されるvalue属性等を含む。
【0054】
図5は、第1のリスト410および第2のリストから操作パターンリスト105を生成する様子の一例を示す図である。上述したように、第1のリスト410は、各入力項目に実際に設定されるパラメータを管理する。また、第2のリスト420は、操作パターンごとに、各入力項目に設定されるパラメータの識別子等を含む。パターン生成アプリケーション104は、第1のリスト410および第2のリスト420から、操作パターンリスト105を生成する。
図5に示す例では、操作パターンリスト105は、第2のリスト420が含むパラメータの識別子(A1~E1等)を第1のリスト410のパラメータ候補413の値に置き換えたものとなる。
【0055】
ある局面において、パターン生成アプリケーション104は、操作パターンリスト105を投入する情報処理装置またはアプリケーションごとに、操作パターンリスト105に含めるパラメータのフォーマットを変更してもよい。例えば、パターン生成アプリケーション104は、第1のリスト410から取得したパラメータを情報処理装置が認識できるテキスト、バイナリ等の任意のフォーマットのデータに変換してもよい。このように、パターン生成アプリケーション104は、第1のリスト410に含まれるパラメータを加工して、第2のリスト420に含めることで、任意の情報処理装置またはアプリケーションに対して使用可能な操作パターンリスト105を生成し得る。
【0056】
他の局面において、パターン生成アプリケーション104は、第1のリスト410から取得したパラメータの値を含むスクリプトを生成してもよい。その場合、操作パターンリスト105は、スクリプトを含むことになる。操作パターンリスト105を投入される情報処理装置またはアプリケーションは、操作パターンリスト105に含まれるスクリプトを実行し得る。また、他の局面において、情報処理装置またはアプリケーションは、外部の装置が当該スクリプトに基づいて生成したコマンドを受信することによって動作し得る。
【0057】
さらに、他の局面において、パターン生成アプリケーション104は、第1のリスト410のみから操作パターンリスト105を生成してもよい。さらに、他の局面において、パターン生成アプリケーション104は、操作画面100から操作パターンリスト105を直接生成してもよい。
【0058】
(A-2.操作パターンリストの第2の生成方法)
次に、
図6を参照して、パターン生成アプリケーション104による操作パターンリストの第2の生成方法の一例について説明する。操作パターンリストの第2の生成方法は、ウェブアプリケーション等により動的に生成されるHTMLコードから入力項目およびそのパラメータを取得する点で、操作パターンリストの第1の生成方法とは異なる。ある局面において、パターン生成アプリケーション104は、静的に生成されるHTMLコードと、動的に生成されるHTMLコードとが混在する操作画面において、操作パターンリストの第1の生成方法および操作パターンリストの第2の生成方法を組み合わせて使用してもよい。
【0059】
図6は、操作パターンリストの第2の生成方法の手順の一例を示す図である。
図6に示す例では、操作画面100は、ウェブアプリケーションにより、動的に表示される。例えば、ウェブアプリケーションは、入力項目101Aの入力を検出した段階で、入力項目101Bを操作画面100に追加する処理を実行し得る。その他にも、ウェブアプリケーションは、入力項目101Aおよび入力項目101Bの設定値(パラメータ)に応じて、入力項目101Cおよび入力項目101Dの表示内容を変更したり、入力項目101Cおよび入力項目101Dのイネーブル/ディセーブルを切り替えたりし得る。上記のように、操作画面100が何らかのウェブアプリケーションにより動的に生成される場合、パターン生成アプリケーション104は、ユーザーが操作画面100を操作するまで操作画面100から全ての入力項目を取得できない場合がある。
【0060】
そこで、パターン生成アプリケーション104は、ウェブブラウザ103におけるユーザーの操作600を検出したことに基づいて、DOMを解析する。ある局面において、パターン生成アプリケーション104は、複数回のユーザーの操作600を検出した場合、操作の検出ごとにDOMの解析を繰り返してもよい。他の局面において、パターン生成アプリケーション104は、ウェブブラウザ103に組み込まれたプラグインからユーザーの操作600の検出通知を受信してもよい。こうすることで、パターン生成アプリケーション104は、ユーザーの操作によって更新されたHTMLファイルのDOMから常に最新の入力項目およびそのパラメータの候補を取得し得る。
【0061】
(A-3.操作パターンリストの第3の生成方法)
図7は、パターン生成アプリケーション104による操作パターンリストの第3の生成方法の一例を示す図である。操作パターンリストの第3の生成方法は、複数の操作画面における操作パターンの組み合わせを求める点で、操作パターンリストの第1および第2の生成方法と異なる。
【0062】
図7の例では、第1の操作画面701と、第2の操作画面702とがある。パターン生成アプリケーション104は、これら第1の操作画面701および第2の操作画面702から、組み合わせ操作パターンリスト710を生成する。
【0063】
パターン生成アプリケーション104は、第1の操作パターンリストの作成方法と同様に、第1の操作画面701における操作パターンリストと、第2の操作画面702における操作パターンリストとを個別に生成する。パターン生成アプリケーション104は、各操作画面の操作パターンリストを作成する際に、
図4を参照して説明した第1のリストおよび第2のリストを生成し得る。
【0064】
次に、パターン生成アプリケーション104は、第1の操作画面701における操作パターンリストと、第2の操作画面702における操作パターンリストとの組み合わせを含む組み合わせ操作パターンリスト710を生成する。
【0065】
第1の操作画面701において、「次へ」ボタンが押下されたときに第2の操作画面702に遷移処理が発生し、逆に、「キャンセル」ボタンが押下されたときに第2の操作画面702への遷移処理が発生しないとする。この場合、パターン生成アプリケーション104は、第1の操作画面701において「キャンセル」ボタンが押下された場合の組み合わせ操作パターンリスト710を生成しなくてもよい。なぜなら、第1の操作画面701において「キャンセル」ボタンが押下された場合、画面の遷移は発生せず、第1の操作画面701の操作パターンリストと第2の操作画面702の操作パターンリストとの組み合わせは発生し得ないためである。
【0066】
上記のように、パターン生成アプリケーション104は、複数の操作画面の各々の操作パターンリストに基づいて組み合わせ操作パターンリスト710を生成することで、複雑な画面遷移を含むウェブUIの操作パターンリストを生成し得る。
【0067】
(A-4.操作パターンリストの第4の生成方法)
図8は、パターン生成アプリケーション104による操作パターンリストの第4の生成方法の一例を示す図である。第4の操作パターンリストは、ユーザーによって選択された入力項目のみを含む操作パターンリストを生成する点で、操作パターンリストの第1~第3の生成方法と異なる。
【0068】
パターン生成アプリケーション104は、例えば、操作画面100において、予めユーザーが選択または入力した入力項目だけを含む操作パターンリスト810を生成し得る。
図8の例では、パターン生成アプリケーション104は、入力項目101A、入力項目101Bおよび入力項目101Eのみを含む操作パターンリスト810を生成する。
【0069】
ある局面において、ユーザーが入力項目を選択した順番が、操作パターンリスト810を生成するときの優先度(順序)であってもよい。例えば、ユーザーが全ての入力項目を選択した場合、全ての入力項目は、操作パターンリスト810の生成時の優先度を割り当てられたことになる。他の局面において、パターン生成アプリケーション104は、ユーザーによって選択された入力項目に優先度を設定しなくてもよい。
【0070】
操作パターンリストの第4の生成方法の手順は、操作画面100から取得される入力項目の数が減少すること、および優先度が設定され得ること以外は、操作パターンリストの第1の生成方法と同様である。
【0071】
上記のように、パターン生成アプリケーション104は、ユーザーに選択された入力項目のみを含む操作パターンリストを生成することで、パターン生成アプリケーション104を実行するコンピューター等の計算リソースの消費を抑制し、より短時間で操作パターンリストを生成し得る。
【0072】
(A-5.操作パターンの更新方法)
次に、
図9および
図10を参照して、パターン生成アプリケーション104による操作パターンリスト105の更新方法について説明する。例えば、ある情報処理装置の機能が変更された場合、当該情報処理装置の機能設定のための操作画面(ウェブUI)の入力項目または入力項目のパラメータも変更され得る。そこで、パターン生成アプリケーション104は、操作画面に変更があった場合、当該変更を操作パターンリスト105に反映させる。なお、入力項目の変更は、新しい入力項目の追加、既存の入力項目の変更または削除を含む。パラメータの変更は、パラメータの増加、減少および変更を含む。
【0073】
図9は、操作画面の更新の一例を示す図である。操作画面100Aは、更新前の操作画面であり、操作画面100Bは、更新後の操作画面である。操作画面100Bは、操作画面100Aと比較して、入力項目101Aからパラメータ(3)が削除されており、逆に、入力項目101Bにパラメータ(d),(e)が追加されている。
【0074】
ある局面において、パターン生成アプリケーション104は、定期的に、操作画面の入力項目およびそのパラメータの候補を取得して、当該入力項目および当該候補と、第1のリストに含まれる入力項目およびそのパラメータの候補とを比較し、操作画面に更新があったか否かを判定してもよい。
【0075】
図10は、パターン生成アプリケーション104による操作パターンリストの更新方法の一例を示す図である。
図10に示す例では、操作画面100において、入力項目101Aのパラメータの追加と、101Bのパラメータの削除とが発生している。
【0076】
パターン生成アプリケーション104は、追加されたパラメータを含む操作パターンを追加候補の操作パターンとして生成する。同様に、パターン生成アプリケーション104は、削除されたパラメータを含む操作パターンを削除候補の操作パターンとして作成する。パターン生成アプリケーション104は、追加候補の操作パターンおよび削除候補の操作パターンを含む第3のリスト1010をさらに生成する。
【0077】
パターン生成アプリケーション104は、操作パターンリスト105に第3のリスト1010に含まれる追加候補の操作パターンを追加し得る。また、パターン生成アプリケーション104は、操作パターンリスト105から第3のリスト1010に含まれる削除候補の操作パターンを削除し得る。
【0078】
ある局面において、パターン生成アプリケーション104は、追加候補の操作パターンおよび削除候補の操作パターンをユーザーに提示して、ユーザーに追加する操作パターンおよび削除する操作パターンを選択させてもよい。その場合、例えば、パターン生成アプリケーション104は、ユーザーの選択に基づいて第3のリスト1010に含まれる確認フラグ1011を更新し得る。パターン生成アプリケーション104は、当該確認フラグ1011に基づいて、第3のリスト1010から、操作パターンリスト105に追加する操作パターンまたは削除する操作パターンを選択し得る。他の局面において、パターン生成アプリケーション104は、ユーザーから、操作パターンの生成の上限数を決めるための入力を受け付けてもよい。パターン生成アプリケーション104は、受け付けた操作パターンの生成の上限数以内で、操作パターンを生成し得る。当該処理により、パターン生成アプリケーション104は、パターン生成アプリケーション104を実行するコンピューター等の計算リソースの消費を抑制し得る。また、他の局面において、パターン生成アプリケーション104は、ユーザーから、操作パターンの生成の範囲を決めるための入力を受け付けてもよい。操作パターンの生成の範囲を決めるための入力は、例えば、操作画面の一部(1以上の入力項目)をジェスチャーで囲う、操作画面の各操作項目を個別に選択する等の操作を含み得る。パターン生成アプリケーション104は、ユーザーによるジェスチャー等により選択された入力項目のみを含む操作パターンリストを生成し得る。
【0079】
<B.システム構成>
次に、
図11および
図12を参照してパターン生成アプリケーション104のソフトウェア構成およびパターン生成アプリケーション104を実行するコンピューターのハードウェア構成について説明する。
【0080】
図11は、パターン生成アプリケーション104のソフトウェア構成の一例を示す。
図11に示す各構成は、例えばソフトウェアモジュールとして実現される。ある局面において、これらの構成の一部は、ハードウェアによって実現されてもよい。
【0081】
パターン生成アプリケーション104は、例えば、コンピューター1110または画像形成装置等の情報処理装置1120によって実行されるアプリケーション1130(ウェブアプリケーション)を解析し、当該アプリケーション1130の操作パターンリスト105を生成する。ある局面において、パターン生成アプリケーション104は、コンピューター1110または情報処理装置1120にインストールされており、コンピューター1110または情報処理装置1120により実行されるアプリケーション1130を解析して操作パターンリスト105を生成してもよい。
【0082】
パターン生成アプリケーション104は、設定部1141と、コンテンツ解析部1142と、抽出対象情報DB(Data Base)1143と、入力項目リスト/パラメータリスト生成部1144と、操作パターン生成部1145と、差異パラメータパターン表示部1147と、操作パターンリストDB1148と、スクリプト作成部1149と、差異パラメータパターン生成部1150と、スクリプト実行制御部1151と、スクリプトDB1152とを含む。
【0083】
設定部1141は、ユーザーからの設定の入力を受け付ける。例えば、設定部1141は、解析対象の操作画面(ウェブUI)のURL(Uniform Resource Locator)、抽出対象情報1143に含めるデータ、またはスクリプトの出力先の情報処理装置の種類(画像形成装置、機械学習用のアプリケーション等)の設定等を受け付け得る。
【0084】
コンテンツ解析部1142は、操作画面を解析する。より具体的には、コンテンツ解析部1142は、操作画面が含むHTMLタグまたはXMLタグ等を解析して要素(入力項目およびパラメータ)を抽出する。抽出対象情報DB1143は、コンテンツ解析部1142によって抽出された要素を格納する。ある局面において、抽出対象情報DB1143は、抽出したname属性の値と、value属性の値とを格納してもよい。
【0085】
入力項目リスト/パラメータリスト生成部1144は、操作画面から抽出された要素に基づいて、
図4を参照して説明した第1のリスト410および第2のリスト420を生成する。また、入力項目リスト/パラメータリスト生成部1144は、
図6を参照して説明したように、ユーザーの操作を検出したことに基づいて、第1のリスト410および第2のリスト420を生成してもよい。
【0086】
操作パターン生成部1145は、第1のリスト410および第2のリスト420に基づいて、操作パターンリスト105を生成する。ある局面において、操作パターン生成部1145は、複数の操作画面の組み合わせ操作パターンを生成してもよい。また、操作パターン生成部1145は、
図9および
図10を参照して説明したように、操作画面に差異が発生した場合に、予め作成した操作パターンリスト105を更新し得る。
【0087】
操作パターンリストDB1148は、作成された操作パターンリスト105または組み合わせ操作パターンリストを格納する。スクリプト作成部1149は、操作パターンリストDB1148を参照して、操作パターンリスト105を投入する予定の情報処理装置またはアプリケーションが実行可能な形式のスクリプトを作成する。ある局面において、操作パターン生成部1145によって作成された操作パターンリスト105は、予め操作パターンリスト105を投入する予定の情報処理装置またはアプリケーションが実行可能な形式のスクリプトを含んでいてもよい。スクリプト作成部1149は、生成したスクリプトをスクリプトDB1152に格納する。
【0088】
スクリプト実行制御部1151は、スクリプトDB1152を参照して、スクリプトを情報処理装置またはアプリケーションに投入する。ある局面において、スクリプト実行制御部1151は、スクリプトに基づいて、情報処理装置またはアプリケーションに、情報処理装置またはアプリケーションが実行可能なコマンド等を出力してもよい。
【0089】
差異パラメータパターン生成部1150は、操作画面の変更に基づいて、追加候補の操作パターンおよび削除候補の操作パターンを含む第3のリスト1010を生成する。差異パラメータパターン表示部1147は、差異パラメータパターン生成部1150よって生成された追加候補の操作パターンおよび削除候補の操作パターンをディスプレイに表示する。操作パターン生成部1145は、ユーザーによって選択された操作パターンのみを操作パターンリスト105に反映させ得る。
【0090】
図12は、パターン生成アプリケーション104を実行する操作パターン生成装置1200のハードウェア構成の一例を示す図である。操作パターン生成装置1200は、CPU(Central Processing Unit)1201と、1次記憶装置1202と、2次記憶装置1203と、外部機器インターフェイス1204と、入力インターフェイス1205と、出力インターフェイス1206と、通信インターフェイス1207とを含む。ある局面において、操作パターン生成装置1200は、PC(Personal Computer)、ワークステーションまたはサーバー装置等の任意の情報処理装置であってもよい。
【0091】
CPU1201は、コンピューター1110の各種機能を実現するためのプログラムを実行し得る。CPU1201は、例えば、少なくとも1つの集積回路によって構成される。集積回路は、例えば、少なくとも1つのCPU、少なくとも1つのFPGA(Field-Programmable Gate Array)、またはこれらの組み合わせ等によって構成されてもよい。
【0092】
1次記憶装置1202は、CPU1201によって実行されるプログラムと、CPU1201によって参照されるデータとを格納する。ある局面において、1次記憶装置1202は、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)等によって実現されてもよい。
【0093】
2次記憶装置1203は、不揮発性メモリーであり、CPU1201によって実行されるプログラムおよびCPU1201によって参照されるデータを格納してもよい。その場合、CPU1201は、2次記憶装置1203から1次記憶装置1202に読み出されたプログラムを実行し、2次記憶装置1203から1次記憶装置1202に読み出されたデータを参照する。ある局面において、2次記憶装置1203は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)またはフラッシュメモリー等によって実現されてもよい。
【0094】
外部機器インターフェイス1204は、プリンター、スキャナーおよび外付けHDD等の任意の外部機器に接続され得る。ある局面において、外部機器インターフェイス1204は、USB(Universal Serial Bus)端子等によって実現されてもよい。
【0095】
入力インターフェイス1205は、キーボード、マウス、タッチパッドまたはゲームパッド等の任意の入力装置に接続され得る。ある局面において、入力インターフェイス1205は、USB端子、PS/2端子およびBluetooth(登録商標)モジュール等によって実現されてもよい。
【0096】
出力インターフェイス1206は、ブラウン管ディスプレイ、液晶ディスプレイまたは有機EL(electro-luminescence)ディスプレイ等の任意の出力装置に接続され得る。ある局面において、出力インターフェイス1206は、USB端子、D-sub端子、DVI(Digital Visual Interface)端子およびHDMI(登録商標)(High-Definition Multimedia Interface)端子等によって実現されてもよい。
【0097】
通信インターフェイス1207は、有線または無線のネットワーク機器と接続される。ある局面において、通信インターフェイス1207は、有線LAN(Local Area Network)ポートおよびWi-Fi(登録商標)モジュール等によって実現されてもよい。他の局面において、通信インターフェイス1207は、TCP/IP(Transmission Control Protocol/Internet Protocol)、UDP(User Datagram Protocol)等の通信プロトコルを用いてデータを送受信してもよい。
【0098】
<C.フローチャート>
次に、
図13~
図18を参照して、パターン生成アプリケーション104の動作手順について説明する。ある局面において、CPU1201は、
図13~
図18の処理を行うためのプログラム(パターン生成アプリケーション104)を2次記憶装置1203から1次記憶装置1202に読み込んで、当該プログラムを実行してもよい。他の局面において、当該処理の一部または全ては、当該処理を実行するように構成された回路素子の組み合わせとしても実現され得る。
【0099】
図13は、パターン生成アプリケーション104の全体の動作のフローチャートの一例である。
図13のフローチャートは、操作パターン生成装置1200にインストールされたパターン生成アプリケーション104が、操作パターン生成装置1200のブラウザ機能によって表示されている操作画面(ウェブUI)から操作パターンリスト105を生成し、当該操作パターンリスト105を使用するまでの処理の手順を示す。
【0100】
ステップS1310において、CPU1201は、操作画面に対してコンテンツ情報解析ルーチンを実行する。コンテンツ情報解析ルーチンの詳細は、
図14を参照して説明する。ここでのコンテンツとは、例えば操作画面として提供されるデータ(HTML、XML等)を指す。
【0101】
ステップS1320において、CPU1201は、入力項目リストおよびパラメータリストを生成する。CPU1201は、入力項目リストおよびパラメータリストを第1のリスト410として、1次記憶装置1202または2次記憶装置1203に保存してもよい。本ステップの処理は、
図4を参照して説明した第1のリスト410を生成する処理に相当する。
【0102】
ステップS1330において、CPU1201は、パラメータパターン生成ルーチンを実行する。本ステップの処理は、
図4を参照して説明した第2のリスト420を生成する処理に相当する。パラメータパターン生成ルーチンの詳細は、
図15を参照して説明する。
【0103】
ステップS1340において、CPU1201は、操作パターンリスト生成ルーチンを実行する。本ステップの処理は、
図5を参照して説明したように、第1のリスト410および第2のリスト420から操作パターンリスト105を生成する処理に相当する。操作パターンリスト生成ルーチンの詳細は、
図16を参照して説明する。
【0104】
ステップS1350において、CPU1201は、操作パターンリスト105から、操作スクリプトを生成する。ある局面において、操作スクリプトは、操作パターンリスト105を投入する予定の情報処理装置またはアプリケーションが実行可能な形式のスクリプトであってもよい。他の局面において、操作スクリプトは、操作パターン生成装置1200が操作パターンリスト105を投入する予定の情報処理装置またはアプリケーションにコマンドを送信するためのスクリプトであってもよい。また、他の局面において、ステップS1340にて生成される操作パターンリスト105は、操作スクリプトを含んでいてもよい。その場合、CPU1201は、ステップS1350の処理を実行しなくてもよい。
【0105】
ステップS1360において、CPU1201は、操作スクリプトを使用する。ある局面において、CPU1201は、操作パターンリスト105を投入する予定の情報処理装置またはアプリケーションに、操作スクリプトを出力してもよい。情報処理装置またはアプリケーションは、当該操作スクリプトを入力されたことにより、操作パターンリスト105の各操作パターンを設定された場合の処理を実行する。他の局面において、CPU1201は、操作スクリプトに基づいて、操作パターンリスト105を投入する予定の情報処理装置またはアプリケーションに操作コマンドを送信してもよい。情報処理装置またはアプリケーションは、当該操作コマンドを受信したことにより、操作パターンリスト105に含まれる各操作パターンが設定された場合の処理を実行する。
【0106】
ステップS1370において、CPU1201は、操作画面を参照し、入力項目リストまたはパラメータリストに更新があるか否かを判定する。より具体的には、CPU1201は、現在の操作画面が含む入力項目およびそのパラメータと、前回作成した第1のリスト410が含む入力項目およびそのパラメータとに差異があるか否かを判定する。
【0107】
CPU1201は、入力項目リストまたはパラメータリストに更新があると判定した場合(ステップS1370にてYES)、制御をステップS1380に移す。そうでない場合(ステップS1370にてNO)、CPU1201は、処理を終了する。
【0108】
ステップS1380において、CPU1201は、入力項目/パラメータリスト更新ルーチンを実行する。入力項目/パラメータリスト更新ルーチンの詳細は、
図17を参照して説明する。ステップS1370およびステップS1380の処理は、
図9および
図10を参照して説明したパターン生成アプリケーション104の処理に相当する。
【0109】
図14は、コンテンツ情報解析ルーチンのフローチャートの一例である。ステップS1410において、CPU1201は、コンテンツのソースコード(HTMLコード等)、またはソースコードに含まれるDOM情報等を取得する。ある局面において、コンテンツのソースコードがXML等のHTML以外のマークアップ言語である場合、CPU1201は、ソースコードに含まれるDOMに相当する情報を取得し得る。DOMに相当する情報とは、例えば、操作画面に含まれる各要素(入力候補)または各要素に設定されるパラメータ等を取得または解析するための情報である。
【0110】
ステップS1420において、CPU1201は、取得した情報(DOM情報等)内に抽出対象の情報が存在するか否かを判定する。抽出対象の情報とは、例えば、特定のname属性が設定されたHTMLタグ等である。ある局面において、抽出対象の情報は、さらに、特定のname属性が設定されたHTMLタグまたは当該HTMLタグの子要素に設定されたvalue属性の値を含んでいてもよい。CPU1201は、取得した情報(DOM情報等)内に抽出対象の情報が存在すると判定した場合(ステップS1420にてYES)、制御をステップS1430に移す。そうでない場合(ステップS1420にてNO)、CPU1201は、処理を終了する。
【0111】
ステップS1430において、CPU1201は、ソースコードまたはDOM情報等からname属性等を用いて抽出対象の情報を収集する。例えば、CPU1201は、DOM情報から、特定のname属性等を設定されたノードを検索し得る。また、CPU1201は、特定のname属性等を設定されたノードまたは当該ノードの子要素に設定されたvalue属性の値を取得し得る。
【0112】
図15は、パラメータパターン生成ルーチンのフローチャートの一例である。ステップS1510において、CPU1201は、操作画面から取得した情報内に抽出対象の情報が存在するか否かを判定する。ここで取得した情報は、入力項目リスト、および各入力項目に設定され得るパラメータリスト(パラメータ候補)を含む。ある局面において、CPU1201は、取得した情報を第1のリスト410として1次記憶装置1202または2次記憶装置1203に保存してもよい。
【0113】
CPU1201は、操作画面から取得した情報内に抽出対象の情報が存在すると判定した場合(ステップS1510にてYES)、制御をステップS1520に移す。そうでない場合(ステップS1510にてNO)、CPU1201は、制御をステップS1530に移す。
【0114】
ステップS1520において、CPU1201は、入力項目リスト(第1のリスト410)から、パラメータの範囲の項目のみを抽出する。ステップS1530において、CPU1201は、入力項目と、パラメータとの組み合わせを算出し、第2のリスト420を生成する。
【0115】
図16は、操作パターンリスト生成ルーチンのフローチャートの一例である。ステップS1610において、CPU1201は、各入力項目に優先度(順序)または範囲が指定されているか否かを判定する。ここでの範囲の指定とは、操作パターンリストに含める入力項目を選択することである。CPU1201は、各入力項目に優先度または範囲が指定されていると判定した場合(ステップS1610にてYES)、制御をステップS1620に移す。そうでない場合(ステップS1610にてNO)、CPU1201は、制御をステップS1630に移す。
【0116】
ステップS1620において、CPU1201は、指定された優先度または範囲に基づいて、ボタン等の操作コンテンツも含めて、入力項目およびパラメータリストの組み合わせを算出し、操作パターンリスト105を生成する。
【0117】
ステップS1630において、CPU1201は、ボタン等の操作コンテンツも含めて、全ての入力項目およびパラメータリストの組み合わせを算出し、操作パターンリスト105を生成する。
【0118】
図17は、入力項目/パラメータリスト更新ルーチンのフローチャートの一例である。ステップS1710において、CPU1201は、操作画面を解析して差異を取得し、当該差異が入力項目における差異であるか否かを判定する。ここでの差異とは、例えば、操作画面における入力項目自体の増減と、入力項目に設定されるパラメータの値の範囲の変化とを含む。CPU1201は、取得した差異が入力項目における差異であると判定した場合(ステップS1710にてYES)、制御をステップS1720に移す。そうでない場合(ステップS1710にてNO)、CPU1201は、処理を終了する。
【0119】
ステップS1720において、CPU1201は、取得した差異が入力項目または入力項目に設定されるパラメータの追加であるか否かを判定する。CPU1201は、取得した差異が入力項目または入力項目に設定されるパラメータの追加であると判定した場合(ステップS1720にてYES)、制御をステップS1730に移す。そうでない場合(ステップS1720にてNO)、CPU1201は、制御をステップS1740に移す。
【0120】
ステップS1730において、CPU1201は、追加された入力項目またはパラメータにより追加候補の操作パターンを生成する。ステップS1740において、CPU1201は、削除された入力項目またはパラメータを含む操作パターンを操作パターンリスト105から検索して、削除候補の操作パターンとして抽出する。
【0121】
ステップS1750において、CPU1201は、追加候補の操作パターンまたは削除候補の操作パターンを含む差異パターンリストを生成する。差異パターンリストは、
図10を参照して説明した第3のリスト1010に相当する。
【0122】
ステップS1760において、CPU1201は、差異パターンリスト反映処理ルーチンを実行する。差異パターンリスト反映処理ルーチンの詳細は、
図18を参照して説明する。
【0123】
図18は、差異パターンリスト反映処理ルーチンのフローチャートの一例である。ステップS1810において、CPU1201は、パターン生成アプリケーション104の設定が、ユーザーが差異パターンを確認する設定であるか否かを判定する。ユーザーが差異パターンを確認する設定とは、ユーザーが差異パターンリストから操作パターンリスト105に反映させるパターンを選択するための設定である。
【0124】
CPU1201は、パターン生成アプリケーション104の設定が、ユーザーが差異パターンを確認する設定であると判定した場合(ステップS1810にてYES)、制御をステップS1820に移す。そうでない場合(ステップS1810にてNO)、CPU1201は、制御をステップS1850に移す。
【0125】
ステップS1820において、CPU1201は、差異パターンリストをユーザーに提示する。例えば、CPU1201は、操作パターン生成装置1200のディスプレイに差異パターンリストを表示し得る。ステップS1830において、CPU1201は、反映対象項目の選択入力を検知する。反映対象項目とは、差異パターンリストに含まれる操作パターンのうち、操作パターンリスト105に反映する操作パターンを指す。ユーザーは、ステップS1820にてディスプレイに表示された差異パターンリストの中から、反映対象項目を選択し得る。
【0126】
ステップS1840において、CPU1201は、反映対象項目の数は0であるか否かを判定する。CPU1201は、反映対象項目の数は0であると判定した場合(ステップS1840にてYES)、処理を終了する。そうでない場合(ステップS1840にてNO)、CPU1201は、制御をステップS1860に移す。
【0127】
ステップS1850において、CPU1201は、差異パターンリストが含む全ての項目(追加候補の操作パターンまたは削除候補の操作パターン)を反映項目(操作パターンリスト105に反映する操作パターン)に設定する。
【0128】
ステップS1860において、CPU1201は、反映対象項目が削除候補の操作パターンであるか否かを判定する。CPU1201は、反映対象項目が削除候補の操作パターンであると判定した場合(ステップS1860にてYES)、制御をステップS1870に移す。そうでない場合(ステップS1860にてNO)、CPU1201は、制御をステップS1890に移す。
【0129】
ステップS1870において、CPU1201は、操作パターンリストDB1148に格納されている操作パターンリスト105から、反映対象項目の操作パターンを削除する。ステップS1880において、CPU1201は、スクリプトDB1152から、反映対象項目の操作パターンの操作スクリプトを削除する。ステップS1890において、CPU1201は、追加候補の操作パターンを操作パターンリスト105に追加するために、パラメータパターン生成ルーチンを実行する。
【0130】
以上説明したように、パターン生成アプリケーション104およびパターン生成アプリケーション104を実行する操作パターン生成装置1200は、アプリケーションのウェブUIからなる操作画面から操作パターンリスト105を生成する。このようにして、ウェブUIの操作パターンが生成される。当該機能により、ユーザーは、膨大な組み合わせになり得るウェブUIの操作パターンリスト105を容易に入手し得る。また、ユーザーは、操作パターンリスト105を開発中のアプリケーションの動作テスト、操作画面のナビゲーションシステムの開発、および機械学習等に活用し得る。
【0131】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
【符号の説明】
【0132】
100,200,300 操作画面、101 入力項目、102 画面コード、103 ウェブブラウザ、104 パターン生成アプリケーション、105,810 操作パターンリスト、106 操作パターン、201,202 プルダウンメニュー、203,204,303,304 HTMLタグ、301 チェックボックス、302 ラジオボタン、410 第1のリスト、411 入力項目の識別子、412 入力項目の種類、413 パラメータ候補、420 第2のリスト、600 操作、701 第1の操作画面、702 第2の操作画面、710 組み合わせ操作パターンリスト、1010 第3のリスト、1011 確認フラグ、1110,1200 操作パターン生成装置、1120 情報処理装置、1130 アプリケーション、1141 設定部、1142 コンテンツ解析部、1143 抽出対象情報DB、1144 入力項目リスト/パラメータリスト生成部、1145 操作パターン生成部、1147 差異パラメータパターン表示部、1148 操作パターンリストDB、1149 スクリプト作成部、1150 差異パラメータパターン生成部、1151 スクリプト実行制御部、1152 スクリプトDB、1201 CPU、1202 1次記憶装置、1203 2次記憶装置、1204 外部機器インターフェイス、1205 入力インターフェイス、1206 出力インターフェイス、1207 通信インターフェイス。