Flash/Flex/Air
Ranorex Studio の Flash/Flex/Air plugin は、これらのアプリケーションをコントロールするためのインターフェースを提供します。これにより、Flash/Flex/Air の UI 要素を識別できます。
しかしながら、これらのテクノロジーでは、いくつかの手動でのインストルメントが必要です。Flash/Flex は多くの場合、インストルメント ウィザードによるインストルメントがおこなえますが、Air では手動でのインストルメントが必要です。
前提条件
Flash/Flex アプリケーションのオートメーションでは、Ranorex Flex Automation Lib を組み込む必要があります。
- Adobe Flex/Flash への Ranorex Lib の組み込み
⇢ Flex アプリへの Ranorex Lib のロード
⇢ Flash アプリへの Ranorex Lib のロード
Automation Lib をロードする方法
以下いずれかのインストルメント方法を選択できます。
⇢ PreLoader (推奨)
Ranorex PreLoader を使用すると、アプリケーション自体を修正せずに Flash/Flex アプリケーションのオートメーションが可能になります。
- ⇢ インストルメント ウィザードを使用した自動インストール
- アプリケーションに対する修正は不要
- Adobe Flash Debug Player をランタイム マシン上にインストールする必要あり
⇢ Automation Lib
AutomationLib swc ファイルを、対象の Flash/Flex アプリケーションに組み込む必要があります。(コンパイラ引数の追加によって)
- オートメーション ライブラリはバックグラウンドでロードされる (Flash/Flex アプリケーションの機能に影響を及ぼさない)
- Web サイトに対する修正は不要
⇢ Module
コード スニペットを ⇢ ACTIONS (Flash の場合) または ⇢ ‘applicationCompleteHandler’ 関数 (Flex の場合) に追加し、swf ファイルをロードする必要があります。
- モジュールはバックグラウンドでロードされる (Flash/Flex アプリケーションの機能に影響を及ぼさない)
- Web サイトに対する修正は不要
- モジュールの swf を Web サーバーにコピーする必要あり
以下の表に、サポートされているバージョンの Flash/Flex でそれぞれ使用可能なインストルメント オプションを示します。
Flash | Flex | AIR* | ||||||
CS3 | CS4 | CS5 | 3.x | 4.x | 2.x | 3.x | 4.x | |
Preloader | ||||||||
Automation Lib | ||||||||
Module | |
|
|
* Flex 3.5 と Flex 4 リリースとの組み合わせでの Adobe AIR 2 リリースのサポート
= supported /
= recommended
属性とスタイルを読み取る/設定する方法
一般的な属性 (チェックボックスのオン/オフ状態など) を直接読み取る/設定するには、以下のように、アダプターを使用します。
// Load the slider as a Flex element to access flex attributes
FlexElement sliderFlex = repo.FlexTestPageDom.ContainerHSlider_Control.SliderHSlider.As();
sliderFlex["value"] = "100";
FlexElement containerFlex = repo.FlexTestPageDom.Self.FindSingle(".//container[@caption='Tree Control']");
containerFlex.SetStyle("borderColor","#ee0000");
カスタムの属性とスタイルにアクセスするには、まず、Flex アイテムを FlexElement としてロードして属性を読み取る必要があります。以下に例を示します。
// Load the slider as a Flex element to access flex attributes
FlexElement sliderFlex = repo.FlexTestPageDom.ContainerHSlider_Control.SliderHSlider.As();
sliderFlex["value"] = "100";
FlexElement containerFlex = repo.FlexTestPageDom.Self.FindSingle(".//container[@caption='Tree Control']");
containerFlex.SetStyle("borderColor","#ee0000");
Ranorex PreLoader の使用
⇢ インストルメント ウィザード を使用すると、マシンでの Flash/Flex オートメーションが自動的に有効になります。
自動インストルメントが正常に動作しない場合は、以下のステップにしたがって、インストルメント ウィザードを使用した場合と同様の設定をおこなうことができます。
レコーディングと Ranorex テストを実行するマシン上で、テストに使用するすべてのブラウザー用に Adobe Debug Flash Player をインストールします。インストーラーは、Adobe のサイト からダウンロードできます。
Windows エクスプローラーを開き、文字列 %UserProfile% をアドレス バーにコピーして、ユーザー プロファイル ディレクトリ %UserProfile% を開きます。
‘mm.cfg’ という名前の新しいファイルをこのディレクトリに作成し、以下のコード行を挿入します。
C:Program Files (x86)RanorexStudioBinRanorexAutomation.swf
上記のパスは、Ranorex インストール フォルダーにある PreLoader の実際のパスに置き換えてください。’mm.cfg’ ファイルがすでに存在する場合は、その場所が現在の PreLoader の場所に正しく設定されているかチェックします。この設定に加えて、Adobe Debug Flash Player のロギング機能を有効化することもできます。ロギング機能は、インストルメントで何らかの問題が発生した場合に役立ちます。有効化するには、’mm.cfg’ ファイルに以下のコード行を追加 (または修正) する必要があります。
TraceOutputFileEnable=1
この設定を追加すると、Debug Player は以下の場所にログ ファイルを生成します。
C:Users[username]AppDataRoamingMacromedia Flash PlayerLogs
[username] の部分は、ログオンしているユーザー名に置き換えてください。
ローカル ドライブからアプリケーションを実行している場合は、以下のように、Flash Player の ‘信頼されている場所設定’ に、出力ディレクトリを追加します
- http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065 を開きます。
- プロジェクトの出力ディレクトリを追加します。
Adobe Flex: Flex アプリへの Ranorex Lib のロード
Adobe Flex Builder を起動し、ワークスペースを開きます。
プロジェクトを右クリックして、プロパティを選択します。
Flex コンパイラで、次のように、Ranorex インストールの Bin ディレクトリに配置されている RanorexAutomation.swc ファイル をコンパイラ引数に追加します。
-include-libraries "C:/Program Files (x86)/Ranorex/Studio/Bin/RanorexAutomation.swc"
以下のコードを ‘applicationCompleteHandler’ 関数に追加します。
import Ranorex.RxAutomation;
RxAutomation.Init();
サポートされているブラウザーでアプリケーションを実行します。
ローカル ドライブから Flex アプリケーションを実行している場合は、Flash Player の ‘信頼されている場所設定’ に、出力ディレクトリを追加します。
- http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065 を開きます。
- プロジェクトの出力ディレクトリを追加します。
Adobe Flash: Flash アプリへの Ranorex Lib のロード
Adobe Flash CS4/CS5 を起動し、アプリケーションを開きます。
‘パブリッシュ設定’ ダイアログを開きます。(ファイル > パブリッシュ設定)
Flash アプリケーションで、Flash > スクリプト > 設定 > ライブラリ パス の順に選択して Ranorex Flash Library を挿入し、’SWC ファイルを参照’ を選択します。
ブラウザー ダイアログで ‘RanorexAutomation.swc’ ファイルを選択します。RanorexAutomation.swc は Ranorex インストールの Bin ディレクトリに配置されています。以下のコードを ACTIONS に挿入します。(F9 キー押下)
import Ranorex.RxAutomation;
RxAutomation.InitFromApp(stage);
または以下のように、そのコードを ActionScript ソース ファイルに追加します。
import mx.controls.*;
import flash.events.*;
import flash.display.*;
import flash.ui.Keyboard;
import flash.geom.Rectangle;
import fl.events.SliderEvent;
// Add Ranorex library
import Ranorex.RxAutomation;
public class Simple extends MovieClip
{
public function Simple()
{
// Add to your constructor
RxAutomation.InitFromApp(stage);
}
}
ローカル ドライブから Flash アプリケーションを実行している場合は、次に示すように、Flash Player の ‘信頼されている場所設定’ に、出力ディレクトリを追加します。
- http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065 を開きます。
- プロジェクトの出力ディレクトリを追加します。
Flash アプリに Ranorex Module をロードする方法
Adobe Flash CS3/CS4/CS5 を起動し、アプリケーションを開きます。
以下のコードを ACTIONS に挿入します。(F9 キー押下)
import flash.net.URLRequest;
var rxloader : Loader = new Loader();
stage.addChild(rxloader);
rxloader.name = "__rxloader";
rxloader.width = 0; rxloader.height = 0;
rxloader.load(new URLRequest("RanorexAutomation.swf"));
サポートされているブラウザーでアプリケーションを実行します。
ローカル ドライブから Flash アプリケーションを実行している場合は、次に示すように、Flash Player の ‘信頼されている場所設定’ に、出力ディレクトリを追加します。
- http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065 を開きます。
- プロジェクトの出力ディレクトリを追加します。
Flex/AIR アプリに Ranorex Module をロードする方法
Adobe Flash Builder を起動し、ワークスペースを開きます。
以下のコードを ‘applicationCompleteHandler’ 関数または初期化コードに追加します。
Flex 3 の場合:
var rxloader : Loader = new Loader();
Application.application.rawChildren.addChild(rxloader);
rxloader.name = "__rxloader";
rxloader.width = 0; rxloader.height = 0;
rxloader.load(new URLRequest("RanorexAutomation.swf"));
Flex 4 の場合:
var rxloader : Loader = new Loader();
FlexGlobals.topLevelApplication.parent.addChild(rxloader);
rxloader.name = "__rxloader";
rxloader.width = 0; rxloader.height = 0;
rxloader.load(new URLRequest("RanorexAutomation.swf"));
サポートされているブラウザーでアプリケーションを実行します。
ローカル ドライブから Flash アプリケーションを実行している場合は、次に示すように、Flash Player の ‘信頼されている場所設定’ に、出力ディレクトリを追加します。
- http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065 を開きます。
- プロジェクトの出力ディレクトリを追加します。
トラブルシューティング
Flash/Flex/Air アプリをインストルメントしても、Ranorex Studio で UI 要素を識別できない場合には、以下を確認ください。
AllowScriptAccess パラメーターの問題
SWF ファイルをロードする HTML コードの AllowScriptAccess パラメーターは、SWF ファイル内から、その外部への URL アクセスを実行する機能を制御しています。
解決方法: PARAM および EMBED タグにあるこのパラメーターを ‘always’ に設定してください。
テスト対象アプリが複数回インストルメントされている
対象の Flash/Flex アプリが、Ranorex Studio によって提供されているバージョンとは異なるバージョンの Flash コンポーネントで、複数回インストルメントされています。
解決方法: インストルメントされていないバージョンのアプリに戻し、このセクションで説明されているインストルメント方法のいずれかひとつだけを使用してインストルメントしてください。