【Winactor】XPathでどうしてもクリックできない

RPA

Webシステムの指定箇所をクリックするなら、ブラウザのXPathを指定してあげればOK!のはずが、どうしてもクリックできない困った状況に陥りました。

その際に試したこと、最終的に行ったことを参考にご紹介します。

完全な解決策ではありませんが、自分の備忘のために記事にしております。少しでも参考になれば幸いです。

実際にやろうとしていること

WebシステムをFireFoxで開いて、指定のボタンをクリックする。

通常は以下の方法でクリックできます。

ライブラリ「ブラウザ関連」から「クリック」を取得します。

クリックをシナリオに追加します。

クリックの設定として、ブラウザ名とXPathを指定します。

あとは実行するだけ!とても簡単です。

XPathを指定しているので、動作の安定感が違います。

動作が不安定な方法を可能な限り避けたいところです。

<動作が不安定なクリックと言えば>

  • 画面の位置を指定してクリック
  • 画面キャップチャで画像を確認してクリック
  • キーボードのキーを押下(例えばEnterキー)

試してみた方法① XPathの末尾に「/p」をつける

調べてみたところ、FireFoxの場合、取得したXPathでは動作しない場合があり、XPathの末尾に「/p」を付ける必要があるって記事がありました。

<取得したXPath>

/html/body/div[3]/div[1]/div/div[3]/div[2]/div/ul/li[2]/a

<修正後のXPath>

/html/body/div[3]/div[1]/div/div[3]/div[2]/div/ul/li[2]/a/p

結果は失敗。

ただ、有益な情報を得ることができたので次の機会に生かせるかもしれません!

試してみた方法② XPathの取得箇所を変えてみる

本来であれば、FireFoxのブラウザ上でクリックしたい指定箇所を選択すると、ソースが青くなるので、右クリックしてXPathのコピーをすればOKです。

調べてみたところ、リスト部分の「<li>」のXPathを指定してはどうかとのアドバイスがあったので試してみました。

やり方は単純です。「<li>」のXPathをコピーするだけです。

結果は失敗でした。私がネットでみた記事でも上手くいってないようでした。

簡単に試せるので、まずはやってみても良いかもしれません。

試してみた方法③ クリックする前にウィンドウを指定する

クリックしようとしているウィンドウを正しく認識できていない可能性があるのではと思い、「任意のウィンドウへ移動」を使って、クリックする前にウィンドウを指定することにしました。

「任意のウィンドウへ移動」を使用するためには、「ウィンドウハンドル取得」を使って、ウィンドウハンドルを事前に取得する必要があります。

結果は失敗でした。これが一番成功しそうな方法かなっと思ったのですが残念です。

Webに関する知識が絶対的に不足していることを痛感してきたところです。

試してみた方法④ フレーム選択を行う

今回の解決策にはならないだろうとは思ってはいつつも試しにやってみました。

ブラウザ内にはフレームによって親子関係があるようで、子のフレーム内にあるボタンをクリックしようとすると上手くいかない場合があるようです。

やり方は、フレーム選択を使って、選択モードにて親か子を選択するだけです。

子「chaild」を選択します。

結果は失敗でした。次に活かせそうな機能なので良しとします。

あとWebサイトのフレーム構造をもっと学ぶ必要があることが分かりました。

最終的にとった方法 クリックをしない(リンク先を直接開く)

私の実力不足により、XPath指定によるクリックがどうしてできなかったので諦めました。

そこで「ページ表示」にてリンク先を直接開くことにしました。

そもそも、ボタン(厳密にはボタンではない)の機能としては、指定されたリンク先のWebページを開くものだったので、リンク先を直接開くが手っ取り早く確実な方法でした。

シナリオを個人で使うなら、URL固定でよいですが、複数人で使うのであれば、文字列の連結によりURL生成を事前にRPAやエクセル等で行う必要があります。

補足ですが、

このWebシステムは、最初にIDとパスでログインすると、取得したIDをURL内に組み込んで、改めてシステムを開くという構造になっていたのです。

多分、複数のシステムの入口を1つにするために取った構造なのではないかと思います。

ログイン(ID・パス取得)した後に

 → Aシステムの入口をクリック(IDを組み込んで生成されたURL(リンク先)を開く)

 → Bシステムの入口をクリック(Aシステムと同様)

今回の調査により、Webシステムの構造を知ることができたことできたので、自分用のログインURLさえ知っていれば、直接システムを開くことができることが分かりました。

この構造が良いのか私には判断できませんが、1つ学ぶことができたので良しとします!

何かの参考になれば幸いです。

タイトルとURLをコピーしました