プログラミング

xpathでcontainsを使う方法【具体例付き】

こんにちは。リノです。

最近、AutomationAnywhereのRPAツールを使って仕事をする機会が増えてきたのですが、たまにxpathの使い方を忘れてしまうことがあったので、今回はxpathのcontainsの使い方を備忘録として書いておこうと思います。

早速、具体的な例を見ていこうと思います。

事前準備として、「xpath helper」を準備しておいてください。xpathを使う時にはかなり重宝します。

例1、ナビゲーションメニューから特定の文字が入ったリンクを取得したい

例えば、下記日経電子版のトップページのナビゲーションメニューから、「地域」の文字を含んだ要素を取得したくなったとする。

この場合、まずは「地域」の表示があるナビゲーションメニューの構成を見るのが必要になる。

そのため、まずはコンソール画面を開いて、要素がどのように構成するか確認する。すると、以下の画像のようなHTMLの構造になっていた。

ということで、まずは「li」タグの要素を抽出して、その後aタグに「地域」の文字が出てくるかを探す。探しかたは、クロームのコンソール画面からコピーを押すと、xpathも取得できるので、そこにcontainを含めるだけです。

//*[@id=”R1″]/body/div/div/ul/li[contains(a,’地域’)]

これで、「地域」の要素にアクセスすることができる。あとは、リンクを取得するだけ。

//*[@id=”R1″]/body/div/div/ul/li[contains(a,’地域’)]/self::li/a/@href

これで、hrefのリンクも取得できます。

例2、見出しメニューの中から特定の文字が入った要素を取得したい

またまた日経電子版に戻ります。今度は、「ダイセキ」の文字が入ったリストの位置を取得してみます。

先ほどと同様に、要素をコンソールから取得します。すると、下記のようにxpathが構成されていうことが判明しました。

//*[@id=”CONTENTS_SUB_TOP”]/div/div/ul/li/a/h3

ただ、このままだと検索の範囲がliだけになってしまうので、liを抜き取り、検索します。そうすることで、綺麗に検索できます。

//*[@id=”CONTENTS_SUB_TOP”]/div/div/ul/li/a[contains(h3,’ダイセキ’)]

以上です。

 

 

 

 

 

 

例1、見出しタグから特定の文字が入った要素を取得する