ブラウザベースのアプリケーションオブジェクトを作成する際に、「読み取り」ステージで「HTML属性を取得」を利用しようとして操作方法がわからなくなり、Blue Prism のサポートの方に教えていただいたので紹介します。
やりたかったこと
例えば下記のような img タグの class や src 属性を、「読み取り」ステージの「HTML属性を取得」を利用して取得したい。
<img alt="Event thumbnail placeholder" src="/assets/placeholder/news-thumb.jpg" class="img-responsive">
「読み取り」ステージの「HTML属性を取得」の使い方
ブラウザベースのアプリケーションオブジェクトでも、Internet Explorer を利用するか、Chrome を利用するかで、指定方法が微妙に変わってきます。
Internet Explorer の場合
まず、アプリケーションモデラーで対象の要素をスパイしておきます。
このとき、属性タブの「名前」に表示されている文字列を、後から利用します。
オブジェクトのアクション内で対象のページを開き「読み取り」ステージで「HTML属性を取得」を選択します。このとき、「属性名」に先ほどスパイした画面で表示されていた属性タブに表示されていた「名前」の通りに指定する必要があります。下記の例では "クラス名" と指定しています。 "class" と指定しても動きません。
スパイした際に取得てきていない属性(例えば src など)は「HTML属性を取得」を使って値を読み取ることができませんが、「HTMLを取得」を使って対象要素全体のHTMLを取得しておき、"Utility Strings" の "Get XML Attribute" を使うと、回避できるようです。ちょっと冗長ですね。。
Chrome の場合
同じように、アプリケーションモデラーで対象の要素をスパイしておきます。Internet Explorer のスパイしている情報に比べ、項目が多いですね。
オブジェクトのアクション内で対象のページを開き「読み取り」ステージで「HTML属性を取得」を選択します。このとき、「属性名」には、HTMLソース内での属性名(ここでは "class" )を指定します。"src" など、Internet Explorer の時には取得できなかった属性も、1ステージで取得できました。
Chrome で指定するパラメーターの方がより直感的ですね。