【文献】
渡辺 英俊、外2名,PCクラスタを用いたサーバベースドコンピューティングシステムの性能評価,情報処理学会研究報告,日本,社団法人情報処理学会,2004年 7月30日,第2004巻,第77号,p.71−76
【文献】
野末 晴久、外5名,クライアント自律操作エージェントの試作と適用事例,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2009年 3月 5日,第108巻,第481号,p.155−160
【文献】
鶴崎 真理子、外1名,差異画素抽出に基づく画面照合機能を特徴とするGUI試験システム,マルチメディア,分散,協調とモバイル(DICOMO2016)シンポジウム論文集 情報処理学会シンポジウムシリーズ,日本,一般社団法人情報処理学会,2016年 7月 6日,第2016巻,第1号,p.1648−1655
【文献】
山本 格也,GUIをAPIとして用いるプログラミング法,情報処理学会論文誌,日本,社団法人情報処理学会,1998年12月15日,第39巻,第SIG1号,p.26−33
(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、SBC方式を適用したサーバを自動化対象とした場合、文字列情報が画像として表示されるため、選択すべき文字列情報が画面のどこに表示されるかが固定でないときに、マウスでクリックする操作を自動化することが困難であるという問題がある。
また、文字列に限らず、グラフィカルユーザインタフェースの部品(チェックボックス、ラジオボタンなど)を操作対象の画面に表示する際にも、表示位置が表示内容に応じて変化するような場合には、マウスでクリックする操作を自動化することが困難である。
すなわち、SBC方式のサーバにおいて、作業者が目視して選択すべき文字列情報やグラフィカルユーザインタフェースの部品を探し出し、その位置をマウスでクリックするという手順は自動化が難しかった。
【0006】
本発明は、このような事情に鑑みてなされたもので、画像で構成された表示画面中から所定の文字列情
報を探し出すことができ、その位置情報に基づいて操作を自動化することができ
る操作自動化装
置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の一態様は、操作を自動化する自動化対象の表示画面の画像を前記自動化対象から取得して該画像を表示する表示部と、前記自動化対象に対する操作内容が記憶されたシナリオデータ記憶部と、前記
操作内容を読み出し、前記自動化対象に対して
前記操作内容に応じた処理を実行するシナリオ実行部
と、操作対象の文字列
から検索対象の文字列画像を生成する画像生成部と、表示画面の画像中において、
前記文字列画像の検索を行い、前記表示画面の画像中に前記
文字列画像が存在した際に、前記操作対象の文字
列の位置情報を出力する画像検索部と
、を備え、前記シナリオ実行部は、前記表示部に表示された表示画面の画像内
の前記位置情報で示される位置において前記操作内容に応じた処理を実行する操作自動化装置である。
また、本発明の一態様は、前記シナリオデータ記憶部は、前記表示画面の画像が前記表示部に収まらなかった場合の操作内容として、スクロールバーの操作を実行する操作内容をさらに記憶し、前記シナリオ実行部は、前記表示画面中において前記文字列画像が存在しなかった場合に、前記シナリオデータ記憶部に記憶されている前記操作内容に基づいて前記スクロールバーを操作し、前記画像検索部は、前記スクロールバーを操作するシナリオが実行された後に、再度前記文字列画像の検索を行う。
【発明の効果】
【0017】
本発明によれば、画像で構成された表示画面中から操作対象の文字列を検索することができるという効果が得られる。また、画像で構成された表示画面中から操作対象のグラフィカルユーザインタフェースの部品を検索することができるという効果が得られる。また、表示された表示画面の画像内において、画像で表現された文字列またはグラフィカルユーザインタフェースの部品に対して操作を自動で行うことが可能になるという効果が得られる。
【発明を実施するための形態】
【0019】
以下、図面を参照して、本発明の一実施形態による文字列画像検索装置、文字列画像検索装置、操作自動化装置を説明する。
図1は同実施形態の構成を示すブロック図である。この図において、符号1は、SBC方式を適用したサーバである。ここで、サーバ1は、設備のデータベースシステムを構成しているものとして説明する。符号2は、SBC方式を適用してサーバ1との間で情報通信を行い、設備のデータベースに対して、操作を行うクライアントである。
【0020】
符号21は、クライアント2の動作を統括して制御する制御部である。符号22は、サーバ1との間でネットワークを介して情報通信を行う通信部である。符号23は、キーボードである。符号24は、ポインティングデバイスとして使用するマウスである。符号25は、サーバ1から送信された表示画面の画像情報を記憶する表示バッファであり、ビットマップ形式で画像を表現する。符号26は、表示バッファ25に記憶された画像情報を表示する表示部であり、ディスプレイ装置で構成する。
【0021】
符号27は、サーバ1に対する操作を自動化するための自動化手順の情報(シナリオデータ)が記憶されたシナリオデータ記憶部である。符号28は、シナリオデータ記憶部27に記憶されたシナリオデータを読み出しながらシナリオデータをサーバ1に対して実行するシナリオ実行部である。
【0022】
符号29は、表示画面の画像上において、画像検索対象である文字列またはグラフィカルユーザインタフェースの部品の画像を生成するための元になる情報が記憶された自動処理リスト記憶部である。符号30は、自動処理リスト記憶部29に記憶されている情報を読み出して、画像検索対象である文字列またはグラフィカルユーザインタフェースの部品の画像を生成する画像生成部である。
【0023】
符号31は、画像検索対象である文字列またはグラフィカルユーザインタフェースの部品の画像と、表示バッファ25に記憶されている画像との画像検索を行う画像検索部である。画像検索部31は、画像検索対象である文字列またはグラフィカルユーザインタフェースの部品の画像が、表示バッファ25に記憶されている画像中に存在した場合、その位置情報を出力する。
【0024】
次に、
図2を参照して、
図1示すシナリオデータ実行部28の動作概要を説明する。
図2は、
図1に示すシナリオ実行部28の動作概要を示す説明図である。ここでは、例えば、設備データベースに対して更新を行う場面において操作を自動化する動作を説明する。まず、シナリオデータ記憶部27には、「更新してもよろしいですか?」というメッセージが表示されたか否かを判定するシナリオデータが記憶されている。シナリオ実行部28は、このシナリオデータを読み出し、操作対象の画面が表示された場面において、「更新してよろしいですか?」という画像が表示されたかを判定する。
【0025】
この判定は、「更新してよろしいですか?」という文字情報の画像を、自動処理リストの内容に基づいて生成し、この生成した画像を表示バッファ25に記憶されている画像中から画像検索した結果に基づいて判定を行う。画像検索の結果、生成した画像が表示バッファ25に記憶されている画像中存在した場合は、メッセージが表示されたと判定する。一方、生成した画像が表示バッファ25に記憶されている画像中に存在しない場合は、メッセージが表示されていないと判定し、シナリオデータに基づいて、エラー処理等の操作を行う。ここでは、メッセージが表示されたものとして説明する。
【0026】
次に、シナリオデータ記憶部27には、メッセージの画像が操作対象の画面の画像中に存在した場合に、「はい(Y)」という文字情報の画像を探し出し、クリックする操作を実行するシナリオデータが記憶されている。シナリオデータ実行部28は、このシナリオデータを読み出し、自動処理リストの内容に基づいて「はい(Y)」という文字情報の画像を生成し、表示バッファ25に記憶されている画像中から生成した画像を探し出す。そして、シナリオ実行部28は、存在した画像の位置において、マウスのクリック操作を実行する。
【0027】
このようにして、「更新してよろしいですか?」というメッセージ表示が行われたか否かの場面を判定する。そして、操作対象の画面においてメッセージ表示の確認ができた時点で、「はい(Y)」というボタンを探し出し、探し出したボタン(「はい(Y)」)を押下するという操作を自動化することができる。
【0028】
次に、
図3を参照して、
図1に示すクライアント2の動作を説明する。
図3は、
図1に示すクライアント2の動作を示すフローチャートである。シナリオデータ記憶部27には、
図3に示す動作を行う前に予めシナリオデータが記憶されている。また、自動処理リスト記憶部29には、
図3に示す動作を行う前に予め自動処理リストが記憶されている。
【0029】
まず、制御部21は、自動操作が開始されると、シナリオ実行部28に対してシナリオの実行を指示する。これを受けて、シナリオ実行部28は、シナリオデータ記憶部27に記憶されているシナリオデータを読み込む(ステップS1)。そして、シナリオ実行部28は、サーバ1に対するシナリオデータの実行を開始する(ステップS2)。
【0030】
以下、本フローチャートを説明するに当たって、具体例として用いるシナリオデータについて説明する。例えば、サーバ1内に構築されている設備データベースシステムに対して、所定の条件を満たす設備の選択を行う操作を行う場合について説明する。シナリオ実行部28は、シナリオデータ記憶部27に記憶されている選択条件である文字列情報を読み出し、選択条件を入力すべきテキストボックスに対して入力する操作を実行する。この動作によって、キーボード23からテキストボックスに対して選択条件の文字列を入力するという操作が自動化される。
【0031】
次に、シナリオ実行部28は、固定の位置に配置されている「選択」ボタンの位置をクリックするシナリオデータを読み出して、「選択」ボタンを押下する操作を実行する。この動作によって、マウス24によって「選択」ボタンを押下するという操作が自動化される。
【0032】
以上のような操作の自動化により、選択条件を入力する操作と「選択」ボタンを押下する操作とが自動化され、表示部26には、この操作の結果である選択した設備の情報が表示される。
【0033】
図4は、設備の選択を行う操作を自動化した結果得られた操作対象の画面41の一例を示す説明図である。
図4に示す操作対象の画面41では、選択する設備名として、「既[光引込区間]NTT幹.10L1.002.0005」という文字列がキーボードから自動的に入力される。この入力に応じて、前方一致した設備の名称がフォーカスされる。フォーカスされることによって、前方一致した設備の名称全体「既[光引込区間]NTT幹.10L1.002.0005」が、バックグランドの色と文字の色とが反転して表示される。
【0034】
シナリオデータの実行が開始されると、シナリオ実行部28は、読み出されたシナリオデータの自動処理リストから最初の1行を読み出す(ステップS4)。シナリオ実行部28は、読み出された行に定義された自動処理を実行する。このとき、自動処理に画像検索が含まれている場合には以下のような処理が実行される。なお、画像検索は、例えば以下のようなケースで用いられる。
例1:SBC方式を適用したサーバ1を自動化対象とした場合、文字列情報が画像として表示されており、選択すべき文字列情報が画面のどこに表示されるかが固定でないときに、選択対象の文字列情報をマウスでクリックする操作を自動化する場合。
例2:画面上において選択されている設備名(文字色が反転している設備名)が、予め定義した設備名と一致しているかを確認する操作を自動化する場合。
例3:文字列に限らず、グラフィカルユーザインタフェースの部品(チェックボックス、ラジオボタンなど)を操作対象の画面に表示する際に、表示位置が表示内容に応じて変化する際に、マウスでクリックする操作を自動化する場合。
すなわち、作業者が目視により選択すべき文字列情報やグラフィカルユーザインタフェースの部品を探し出し、その位置を特定するような操作を実行する場合に、画像検索が用いられる。
【0035】
以下の説明では、画像検索が必要な場合として、画面上において選択されている設備名(文字が反転している設備名)が、予め定義した設備名と一致しているかを確認する場合を例にして説明する。
【0036】
まず、画像生成部30は、読み出された自動処理に基づいて、画像検索すべき文字列から画像を生成する(ステップS4)。本具体例では、自動処理として、「既[光引込区間]NTT幹.10L1.002.0005」という文字列が登録されている。この文字列が画像検索すべき文字列となる。
【0037】
次に、画像生成部30は、生成した画像から画像検索に必要な部分のみをキャプチャする(ステップS5)。画像生成部30は、キャプチャした画像を画像検索部31に対して出力する。これを受けて、画像検索部31は、表示バッファ25に記憶されている画像中にキャプチャした画像が存在するか否かを検索する(ステップS6)。
【0038】
次に、画像検索部31は、画像検索結果をシナリオ実行部28に対して、出力する。画像検索部31は、表示バッファ25に記憶されている画像中にキャプチャした画像が存在した場合、存在した文字列の位置(例えば、文字列を囲む矩形の左上の表示バッファ25上の座標)を画像検索結果として出力する。一方、表示バッファ25に記憶されている画像中にキャプチャした画像が存在しなかった場合、画像検索部31は、存在しなかったことを示す情報を出力する。
【0039】
次に、シナリオ実行部28は、画像検索結果に応じた自動処理をサーバ1に対して実行する(ステップS7)。
シナリオ実行部28は、ステップS1で読み出されたシナリオデータにおける自動処理リストに次の行がある場合(ステップS8−YES)、次の行を読み出す(ステップS3)。シナリオ実行部28は、自動処理リストの終了まで動作を繰り返す。一方、自動処理リストに次の行が無い場合(ステップS8−NO)、シナリオ実行部28は、読み出されたシナリオデータの実行を終了する。
【0040】
なお、表示画面が表示部26に収まらない場合は、スクロールバーが表示されるが、このスクロールバーを操作するシナリオデータがシナリオデータ記憶部27に記憶されている。スクロールバーを操作するシナリオが実行されることにより、表示部26に収まらなかった画面についても表示することが可能である。選択すべき設備名が、最初の表示画面中において存在しなかった場合は、スクロールバーを操作するシナリオを実行した後、再度画像検索を行うことによって、確実に選択すべき設備名を選択することが可能となる。
【0041】
次に、
図5〜
図9を参照して、
図3に示すステップS3〜S7の動作を説明する。
図5は、シナリオ実行中に画像検索を行う動作を示す説明図である。画像生成部30は、自動処理リスト記憶部29から画像検索すべき文字列情報を読み込む。この例では、「既[光引込区間]NTT幹.10L1.002.0005」という文字列が読み込まれる。そして、画像生成部30は、画像検索すべき文字列情報から、この文字列を画像化した画像を生成する。このとき、画像生成部30は、操作対象の画面41のように、バックグランドの色と文字の色が反転している画像を生成する。そして、画像生成部30は、文字列部分のみをキャプチャする。
【0042】
次に、画像検索部31は、操作対象の画面の画像(この時点で表示バッファ25に記憶されている画像)中にキャプチャした画像が存在するか否かの画像検索を行い、キャプチャした画像が操作対象の画面の画像に存在しているか否かを判定する。画像検索部31は、表示バッファ25に記憶されている画像中にキャプチャした画像が存在し場合存在した文字列を囲む矩形の左上の表示バッファ25上の座標を画像検索結果として出力する。一方、表示バッファ25に記憶されている画像中にキャプチャした画像が存在しなかった場合、画像検索部31は、存在しなかったことを示す情報を出力する。
【0043】
図6は、文字列情報から画像を生成する際のHTML(HyperText Markup Language)の処理を示す説明図である。文字列の画像は、画像生成部30において
図6に示すHTML文50を実行することによって生成する。
図6に示すHTML文50のうち、破線で囲ったHTML文51が可変部分である。このHTML文51は、自動処理リスト記憶部29かた読み込んだ文字列情報に置き換わる。
図6に示す操作対象画面42の場合は、文字色が反転している設備名を探し出す必要があるため、可変部分は、「既[光引込区間]NTT幹.10L1.002.0005」となる。また、HTML文50において、文字列のサイズ、文字列の書体、文字色、バックグランドの色は、サーバ1に構築されている設備データベースシステムの画面表示に用いられるものと同じものを用いる。
【0044】
図7は、
図6に示すHTML文50を実行した際に得られる画面の画像の一例を示す説明図である。画像生成部30は、文字列の画像を生成する際に、キャプチャを簡単に行えるように、マーカー61、62を付与した画像を生成する。マーカー61は、文字列の画像の左上の位置を示すためのものである。マーカー62は、文字列の画像の右下の位置を示すためのものである。
【0045】
なお、マーカー61、62に代えて、文字列を囲った罫線によって、キャプチャすべき領域を定義するようにしてもよい。
【0046】
図8は、画像生成部30が行うキャプチャの動作を示す説明図である。画像生成部30は、
図7に示す画面の画像からマーカー61、62の位置に基づき、画像検索に必要な部分のみの画像をキャプチャし、ビットマップ形式で保持する。この動作によって、
図4に示す操作対象の画面41と画像検索する文字列画像が画像生成部30内において生成されて保持される。
【0047】
なお、前述した説明においては、表示バッファ25に記憶されている画面の画像中から、文字列情報から生成した文字列画像を検索する例を説明したが、HTML文によってグラフィカルユーザインタフェース(GUI)の部品の画像を生成し、表示バッファ25との画像をこの部品画像が存在するか否かを検索するようにしてもよい。グラフィカルユーザインタフェースの画像を生成し、表示バッファ25の画像中から画像検索することにより、表示画面上のグラフィカルユーザインタフェース部品を探し出すことができる。このため、画像で構成された表示画面中から、場面に応じて表示位置の異なる操作対象のグラフィカルユーザインタフェースの部品を探し出すことができる。
【0048】
また、前述した説明においては、サーバ1における業務システムとして、設備のデータベースシステムを例に挙げたが、サーバ1で実行するアプリケーションシステムは、他のアプリケーションシステムであってもよい。
【0049】
また、
図1に示す表示バッファ25、自動処理リスト記憶部29、画像生成部30、画像検索部31を備える文字列画像検索装置を構成し、画像によって構成された表示画面中から検索対象の文字列を検索するようにしてもよい。また、文字列画像検索装置と同様の構成を備え、画像によって構成された表示画面中から検索対象のグラフィカルユーザインタフェースの部品を検索する部品画像検索装置を構成するようにしてもよい。
【0050】
以上説明したように、検索対象の画像を生成し、表示画面の画像中に生成した画像が存在するか否かの画像検索を行うことにより、表示画面の中から検索対象を探し出すことができる。また、表示画面の中から検索対象を探し出すことにより、従来は自動化が困難だった操作の自動化を実現することができる。
【0051】
(変形例)
シナリオデータに含まれる自動化の対象となる操作のうち、定型な操作対象に対しては、従来手法(予め操作対象の画像を取得しておく方法。)を用いて自動化が実現されてもよい。この場合、使用される画像は、予めシナリオデータとして保存されてもよい。
前述した実施形態におけるクライアント2の全部または一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、PLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されるものであってもよい。
【0052】
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
【課題】画像で構成された表示画面中から所定の文字列情報やグラフィカルユーザインタフェースの部品を検索することができる文字列画像検索装置、部品画像検索装置を提供する。
【解決手段】画像によって構成された表示画面中から検索対象の文字列またはグラフィカルユーザインタフェースの部品を検索する画像検索装置であって、検索対象の画像を生成する画像生成部と、表示画面の画像中おいて、検索対象の画像の検索を行い、表示画面の画像中に検索対象の画像が存在した際に、検索対象の位置情報を出力する画像検索部とを備える。