iMacrosではTAGコマンドを使ってWebサイトの特定のタグを選択することが出来ます。選択というのはリンクをクリックしたり、文字列をコピーしたりする時にサイトの何処かをクリックすることですね。このサイトの特定の場所をiMacrosのTAGコマンドではPOSまたはXPATHを使って指定することが出来ます。本記事ではTAGコマンドでXPATHを使う方法をお伝えします。
XPATHについて
XPATHってなんだ?と思われるので、簡単にご説明します。
例えば次のようなウェブサイトの場合のHTMLファイルですが、
このような構造をしています。
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE html> <html> <body id="sample"> <h2>Example page</h2> <ul class="ex"> <li>page 1</li> <li>page 2</li> </ul> </body> </html> |
ここで、”page 2″を指定する時にどのように表現すればいいでしょうか?
こんな時にXPATHを使えば次の様に表現が出来ます。
//body[@id=”sample”]/ul/li[2]
どうなっているのかというと、上のプログラムを図で表すと下の図の左側のような形をしています。緑色で表しているbody、ulは特徴があるところですね。なんの特徴かというと、TAGコマンドのPOSで説明したようなATTRで表せる “id” 、”class” という属性です。この特徴がある箇所を起点として、下の図の右側のように “page 2″の場所である “li”をタグを並べて表しています。
一段構造が右へ移るとき(例えば bodyの下のulへなど)はスラッシュ ( / ) を使って表します。
ulの下にはliが2つありますね。このように同じタグが並んでいる時は、タグの後ろに[ ]をつけて番号で表します。”page 2″ の場合は2番目のliなので “li[2]” としています。”page 1″を表すときは “li[1]” とすれば出来ます。
bodyの下にはh2とulが2つありますが、h2とulは違う要素なので、ulを表すのに[ ]は使用していません。
それから、特徴があるタグを起点にXPATHを表現できるので、”page 2″ は次のようにもXPATHで書きことが出来ます。この場合はclass属性があるulタグが起点ですね。
//ul[@class=”ex”]/li[2]
ではXPATHをiMacrosのTAGコマンドで使う方法をみてみましょう。
TAGコマンドでXPATHを使う
TAGコマンドでXPATHを使う場合は次のように使用します。この “xpath_expression” にXPATHで表現したタグを書きます。[content . . .]は選択式ですので、なくても大丈夫です。
TAG XPATH=”[xpath_expression]” [CONTENT=some_content]
さっきほどの “page 2” を XPATHを使って選択するには次のようになります。
TAG XPATH=”//body[@id=”sample”]/ul/li[2]”
これでiMarosのTAGコマンドでXPATHを使い “page 2″を選択することが出来ます。
この様に、TAGコマンドでXPATHを使う場合、サイトの構造を確認する必要があります。慣れればFirefoxのでも開発ツールでもわかる様になりますが、最初はChromeのデベロッパーツールで確認してみましょう。