1

無効な型を持つ戻り引数に関する問題に直面しています。

私の目標は、Visual Studio でテストするために、QTP アクション (コンボボックス、テキスト領域など) のすべてのオブジェクトを取得することです。

そのために、ライブラリ「QTObjectModelLib」を使用してQTPテストを開いたり実行したり、C#で結果を取得したりしました

すべてのオブジェクトを取得するために、QTP インストール ディレクトリにあるこの dll "REPOSITORYUTILLib" を見つけました。

この空気が作動し、

私は自分のオブジェクトを作成します

private ObjectRepositoryUtilClass testss = new ObjectRepositoryUtilClass();

そして、これをテストすると:

 testss.Load(@"D:\RepoTest.tsr");

 TOCollection collection =  testss.GetAllObjects();

またはこれ:

testss.Load(@"D:\RepoTest.tsr");

 TOCollection collection =  testss.GetAllObjects("SwfWindow('Continent')");

私はこの例外に直面しています:

「 System.InvalidCastException : 戻り引数の型が無効です。」

また、アクションでリポジトリをロードしようとしました:

 "testss.LoadActionRepository(constanteRef.QTPTestPath, action.name);

  TOCollection collection =  testss.GetAllObjects(); "

同じ問題...

体には解決策があります:)?

どうもありがとう。

シリル。

4

1 に答える 1

1

http://www.sqaforums.com/showflat.php?Number=438836&page=0から:

残念なことに、Mercury はその COM インターフェイスで Variant 型を広範囲に使用しており、これは Interop が多くのことを詰まらせているようです。

これと、その他の明らかでない事実が、型キャストの問題を引き起こします。

重要なアイデアは、リフレクションを介して QTP ルーチンを呼び出すことです。たとえばtestObject.GetType().InvokeMember()、la です。詳細については、スレッド リンクを参照してください。

また、アクティブなサポート契約を結んでいる場合: 以前は KB 記事http://support.openview.hp.com/selfsolve/document/KM916723がありました ... ID は新しいバージョンにつながる可能性があります。

于 2013-07-02T20:13:57.143 に答える