iMacrosのTAGコマンド詳説

iMacrosのTAGコマンド詳説

Posted at May 30,2014 1:55 AM
Tag:[iMacros]

iMacrosのTAGコマンドについて解説します。

iMacrosのTAGコマンド

1.はじめに

ブラウザの操作をマクロ化する「iMacros」」で紹介したとおり、iMacrosはブラウザ上の操作をマクロ化するためのアドオンです。

本エントリーではiMacrosコマンドのひとつである、TAGコマンドについて紹介します。

マクロコマンドを編集するには、編集したいマクロファイルをクリックしたあと、「Manage」タブ→「Edit Macro」をクリックしてください。

マクロコマンドを編集

2.TAGコマンドとは

TAGコマンドは、特定のHTML要素を抽出、あるいはHTML要素にテキストを設定するためのコマンドです。

次の例は、Google検索のページにアクセスして「hoge」という検索文字を入力する動作をマクロにしたものです。

URL GOTO=https://www.google.co.jp/
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:tsf ATTR=ID:lst-ib CONTENT=hoge

1行目のURLコマンドでGoogle検索のページにジャンプし、2行目のTAGコマンドで検索フォームに「hoge」という文字列を設定しています。

URLコマンドは直観的に分かりますが、TAGコマンドの指定方法がやや分かりにくいと思います。

ということで、次項からTAGコマンドによる特定要素の指定方法を解説します。

3.TAGコマンドのフォーマット

TAGコマンドで要素を特定するための最低限のフォーマットは次のとおりです。

TAG POS=n TYPE=要素名 ATTR=属性名

サブコマンドは次の3種類です。

  • POS:要素の出現順序
  • TYPE:特定する要素名
  • ATTR:要素を特定するための情報

上記以外にもいくつかのサブコマンドがありますので、それらについては後述します。

ここではサンプルとして、ページ内に複数存在するa要素およびinput要素から特定の要素を指定する方法について解説します。

4.id属性で要素を特定する

特定したい要素にid属性が割り当てられている場合、TAGコマンドに次のように記述します。

TAG POS=1 TYPE=A ATTR=ID:id属性値

TYPEにはa要素を示す「A」、ATTRには「ID:」を記述し、その隣にid属性値を指定します。POSは出現順序で、要素を一意に特定できる場合は常に「1」を指定します。

たとえば次のようなHTMLがあるとします。

<a href="#" id="a">aaa</a>
<a href="#" id="b">bbb</a>
<a href="#" id="c">ccc</a>
<a href="#" id="d">ddd</a>
<a href="#" id="e">eee</a>

このHTMLで3番目のa要素を特定したい場合、

TAG POS=1 TYPE=A ATTR=ID:c

と記述します。これで「id属性がcであるa要素」となります。

5.テキストで要素を特定する

要素にid属性が存在しない場合、テキスト(要素の内容)で識別する必要があり、TAGコマンドに次のように記述します。

TAG POS=1 TYPE=A ATTR=TXT:テキスト

TYPEに「A」、ATTRに「TXT:」を記述し、その隣にテキストの内容を指定します。POSは前項同様「1」を指定します。

たとえば次のようなHTMLがあるとします。

<a href="#">aaa</a>
<a href="#">bbb</a>
<a href="#">ccc</a>
<a href="#">ddd</a>
<a href="#">eee</a>

このHTMLで3番目のa要素を特定したい場合、

TAG POS=1 TYPE=A ATTR=TXT:ccc

と記述します。これで「テキストがcccであるa要素」となります。

6.出現順序で要素を特定する

指定する要素の要素名とコンテンツの内容がすべて同一である場合、POSとTEXTで識別します。

TAG POS=n TYPE=A ATTR=TXT:テキスト

TYPEに「A」、POSに出現順序の番号、ATTRには「TXT:」を記述し、その隣にテキストの内容を指定します。

たとえば次のようなHTMLがあるとします。

<a href="#">aaa</a>
<a href="#">aaa</a>
<a href="#">aaa</a>
<a href="#">aaa</a>
<a href="#">aaa</a>

このHTMLで3番目のa要素を特定したい場合、

TAG POS=3 TYPE=A ATTR=TXT:aaa

と記述します。これで「テキストがaaaである3番目のa要素」となります。

7.name属性で要素を特定する

次にinput要素の指定です。

input要素の場合、id属性の他にname属性を使うことができます。

特定したい要素にname属性が割り当てられている場合、TAGコマンドに次のように記述します。

TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:name属性値

TYPEにはinput要素を示す「INPUT:」とその隣にtype属性値の「TEXT」、ATTRには「NAME:」を記述し、その隣にid属性値を指定します。POSは出現順序で、要素を一意に特定できる場合は常に「1」を指定します。

たとえば次のようなHTMLがあるとします。

<input name="a" type="text" />
<input name="b" type="text" />
<input name="c" type="text" />
<input name="d" type="text" />
<input name="e" type="text" />

このHTMLで3番目のa要素を特定したい場合、

TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:c

と記述します。これで「name属性がcであるinput要素」となります。

なおinput要素の場合、値を設定するケースだと思いますので、CONTENTも同時に設定します。CONTENTは値を設定するサブコマンドです。

TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:name属性値 CONTENT=設定内容

8.form要素で要素を特定する

特定する要素の親要素にform属性が存在する場合、FROMサブコマンドを利用することができます。

TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:name属性値 FROM=NAME:name属性値 CONTENT=設定内容

または、

TAG POS=1 TYPE=INPUT:TEXT ATTR=NAME:name属性値 FROM=ID:id属性値 CONTENT=設定内容

複数のform要素で同一のinput要素が存在する場合に組み合わせて使います。

たとえば次のようなHTMLがあるとします。

<form name="a">
<input type="text" name="aaa" /><br />
<input type="text" name="bbb" /><br />
<input type="text" name="ccc" /><br />
</form>
<form name="b">
<input type="text" name="aaa" /><br />
<input type="text" name="bbb" /><br />
<input type="text" name="ccc" /><br />
</form>

このHTMLで2つめのformの2番目のinput要素(name="bbb")に「foo」という値を設定したい場合、

TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:b ATTR=NAME:bbb CONTENT=foo

と記述します。

この場合、POSに「1」を設定することに注意してください。

ここまで読み進んだ方であれば、2項のGoogle検索のTAGコマンドの意味がお分かりになったと思います。

9.その他

マクロを作成する場合のポイントです。

  • a要素・input要素以外の特定も可能です
  • class属性値は要素の特定には使われません
  • 特定方法に優先順位は特にありませんが、マクロを作成する場合、id属性 → form属性 + name属性 → name属性 → テキスト → POSという順序で考えるとよいでしょう
関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)