[WinActor]IE操作『詳細設定に一致するコントロールが存在しない。』

エラー『詳細設定に一致するコントロールが存在しない。』

IE操作記録モードで操作記録して動作をトレースさせる場合
部分実行だとうまくいくのに通しで実行するとうまくいかないという相談を受ける時があります。

大抵は、通しで実行した際に、操作した前半の操作でページの表示レイアウトが途中で切り替わるようなページでよくあります。

 

1.原因を理解する

だいたい、IE自動操作記録で生成されたノードはこんな感じになっています。

詳細設定でチェックの付いている箇所が判定条件として使われている訳ですが、デフォルトでは[tag]・[frame index]・[tag index]にチェックが付いた状態になっています。

一つづつ、説明するとこんな感じです。

[tag]

⇒ 操作対象の要素の種類なので、大抵はinput、select、textareaあたりになっているかと思います。

[frame index]

⇒ frameタグというものがあって、一つのページの中に複数のWebページのファイルを組み込むことができるんですが、複数のページが混在したWebサイトの場合には操作対象のフォームを検索する際にframeを横断する形での要素検索ができないので何番目のframeかを指定する必要がでてくる訳です。

でもま、単純なレイアウトのページであれば大抵はframe index は 0 なので意識することはないでしょう。

[tag index]

⇒ これが問題の原因になりやすいところです。

[tag]の要素(今回の例のスクショだとselect)タグとして、0から数えて何番目か?というのがtag indexの正体です。

これは、同じframe内の表示順で決まるindex値になるので対象項目の操作前にどこかの画面オプションで項目の数が増減してしまう場合にはすぐにindex値が変わってしまう可能性があります。

 

2.表示順に左右されない項目で判定するよう修正する

大抵の場合は、idの項目で「値⇒」の値が取れていれば[tag index]のチェックを外して[id]のチェックを入れれば解消することができるハズです。

操作対象の要素にidが設定されていない場合は、nameにするかフォーム変動を発生させる項目に応じて[tag index]を変数化して調整する必要があります。

 

WinActorでは、ライブラリのステージでは、vbscriptというスクリプトが採用されています。

vbscriptについて調べる。 – Amazon

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です