Web siteから検索条件を入力し検索結果を取得したい

web-element
#1

はじめまして。
RPA Express初心者です。

下図のようなWebSiteから検索条件を入力し、検索結果を表示させ、検索結果の「No」を取得する操作を自動化したいと思っております。

手順は以下の通りです。

1.Fruit Nameから「Orange」を選択
2.Dateに今日日付(yyyy-mm-dd)を入力
3.Searchボタンを押下
4.Search resultsの検索結果から「件数」と「No」を取得する

1~3までは実装できましたが、4の結果取得方法について、ご教授頂けたら幸いです。
よろしくお願い致します。

#2

検索結果表示の仕組みにより方法が変わるかと思います。
Xpathから列指定で取得してしまうことができれば簡単そうです。
以下の質問は私が質問したものですが、「Xpathの演算子を使用して条件に一致する要素をリストで取得できる」という回答をもらっています。

他にも、以下のような方法でも対応できそうです。
1.「Ctrl+A」、「Ctrl+C」で画面上のテキストをすべて取得する
2.テキストエディターで必要な情報を抽出する
3.リスト変数に入れる
4.行数をカウントして、件数を取得する

完全に未検証ですので、問題があったら申し訳ありません。

1 Like
#3

Moriya_akira様

お世話になっております。
他のご質問に続き、こちらでも分かりやすく回答頂き大変助かっております。
ご教授頂いた内容で実装してみました。

上記サンプルの図のNoの値を取得するためのXpathは以下の通りとなっております。
【値単位のXpath】
//*[@id=“issue-10001”]/td[2]
//*[@id=“issue-10009”]/td[2]
//*[@id=“issue-10010”]/td[2]

【tbody単位のXpath】
//*[@id=“content”]/form[2]/div[2]/table/tbody

試しに1行目の値「//*[@id=“issue-10001”]/td[2]」を取得しリストに格納することはできました。
二行目以降のidが動的に変わる場合は、どのようにXpath指定すればよいかご教授頂けないでしょうか?

また、「Ctrl+A」、「Ctrl+C」で画面上のテキストをすべて取得する方法でテキストエディタで必要な情報を抽出する場合は、何をターゲットとしNoと判定し抽出できるのか詳細ご教授頂けたら幸いです。

知識不足で大変お手数おかけしますが、よろしくお願い致します。

1 Like
#4

すみません
しばらく忙しくなってしまうので、今週はお返事できそうにありません。

他の方からのコメントがないようでしたら、また来週にでも考えてみます

2 Likes
#5

Moriya_akira様

お世話になっております。
ご多忙の中、コメントありがとうございます。
お手すきの時、改めてアドバイス頂けたら幸いです。

よろしくお願い致します。

2 Likes
#6

こんにちは。
Xpathによる指定は私もあまり詳しくないということと、Xpathを見た限り面倒臭そうなので、
テキストをすべて取得して、エディタソフトで成形する方法を考えてみました
息抜きに考えたテキトーな方法なので最適ではないかもしれませんが、ご了承ください。

ターゲットを正規表現で指定してみるのはどうですか?
テーブル的に「Ctrl+A」、「Ctrl+C」で取得した情報をペーストすると、それぞれのNo(ナンバー)は、行頭に来るのではないかと思われます。
その場合、例えばサクラエディタの「検索」→「置き換え」で、正規表現を有効にして行頭にある数字5文字を抽出することで、対象のNo(ナンバー)を取得できるかと思われます。
以下のような操作をサクラエディタのマクロに登録して、RPAでは実行するだけ…というようにすれば、簡単かつ素早く処理ができるでしょう。
ポリシー的にサクラエディタなどをインストールすることができない。などの場合はRPAのカスタムスクリプトで同じような操作をすることができるはずですが、正直オススメしません。

置換前
^(\d{5}).*
※数字5桁で始まる行から、初めの5桁の数字だけ取り出す
置換後
$1

置換前
^(?!.*(\d{5})).+$
※数字5桁で始まる行以外の行を削除
置換後
行削除

置換前
^¥r¥n
※改行だけの行を削除
置換後
行削除

2 Likes
#7

Moriya_akira様

いつもお世話になっております。
お忙しいところ、ご回答頂きありがとうございます。
アドバイス大変助かっております。

サクラエディタはインストール可能ですので
ご教授頂いた内容で早速実装してみたいと思います!

実装しましたら、またご連絡させて頂きます。

取り急ぎ、お礼まで。

2 Likes
#8

追記
以下の正規表現を使えば手間が1つ減っていいかもしれません。

置換前
^(?!.(^\d{5})).(?=(\r\n)).*$
※行頭5文字が数字ではない全ての行
置換後
行削除

置換前
^(\d{5}).*
※数字5桁で始まる行から、初めの5桁の数字だけ取り出す
置換後
$1

さっきから何かおかしいと思っていましたが、
どうやら正規表現の表示がうまくできないようです。
とりあえず、画像で正しい正規表現を載せておきます

2 Likes
#9

Moriya_akira様

お世話になっております。
丁寧に手順お知らせ頂きありがとうございます!!:sob::star2:

私がお知らせさせて頂いておりました、テーブルイメージ図と実際に
取得したWebページで「Ctrl+A」、「Ctrl+C」で取得できる値が少し
違っていたので、正規表現少し改良させて頂き、無事No取得することが
できました!!:laughing:
※手順丁寧にお知らせ頂いたのにすみません。:sob:

ありがとうございます!
大変助かりました。:bowing_woman:

今後ともよろしくお願い致します。:pray:

2 Likes
#10

解決したようで、何よりです。
また困ったことがあれば教えてください。
(専門的にやっている方やプログラマーの方からすれば微妙な回答になるかもしれませんが…)

2 Likes