はじめに
書き込みステージを使用してブラウザに値が反映されず困り果て、こちらの記事を参考にして問題解決!と思いきやこちらでも反映されなかったため、その時の対処方法を書いていこうと思います。
書き込みステージを使用したときのブラウザの状態
結果は以下のようになりました。
このように正しく入力することができず、ブラウザ上では「未入力」とされてしまいました。
そこで参考元の記事に倣って実装し直してみましたが今度はテキストボックス内に何も表示されてないという事態となってしまい、別の方法を考えなくてはならなくなりました。
記事を参考に実装を修正したときのオブジェクトは以下になります。
対処方法
さっそく対処方法をご紹介していきます。
手順は以下になります。
1.案件名をクリップボードに貼り付ける
2.ブラウザをアクティブ化する
3.「案件名」のテキストボックスをクリックする
4.コピーした文字を貼り付ける
手順は参考元の記事と変わりありませんが、問題解決の決め手はスパイした要素にありました。
手順4では、UIオートメーションナビゲーターを使って要素をスパイし実装します。次の項目から詳しく説明していきます。
UIオートメーションナビゲーターによる要素取得
通常のスパイモード(ブラウザモード)でスパイした要素では、手順4「コピーした文字を貼り付ける」のアクションが画面上に反映されませんでした。
そのため、手順3のアクションで使用する通常のスパイモードでスパイした要素と手順4のアクションで使用するUIオートメーションナビゲーターでスパイした要素を用意します。
通常のスパイモードでスパイした要素(要素の名前は、text_案件名(ブラウザ)としました)
UIオートメーションナビゲーターでスパイした要素(要素の名前は、案件名入力項目ラベル(UIA)としました)
UIオートメーションナビゲーターは、
アプリケーションモデラーをクリックし、識別の▼をクリック、「UIオートメーションナビゲーターを開く」で選択できます。
使用すると非表示の要素を含め、ページ上の要素を全て確認、取得することができます。
実装
アクションステージ「クリップボードに張り付け」の詳細は以下になります。(手順1)
操作ステージ「案件名入力」の詳細は以下になります。(手順2~4)
値が入力できました!
まとめ
参考記事との違いは、通常のスパイモードでは取得できない要素が原因で値を入力することができなかったということでした。
通常のスパイで上手くいかない場合には、アプリケーションモデラーの識別のから「UIオートメーションナビゲーターを開く」を選択し、要素を取得するのがおすすめです。ぜひ、試してみたください。
本記事が参考になれば幸いです。