tan_tan
(tan_tan)
1
Chromeを使用して特定のサイトにアクセス、
①ページの一番下まで移動して画面スクレイピング
②スクレイピングした内容を基に指定されたリンクをクリックして遷移
①②を複数回を行っております。
※ページの一番下まで移動しないと画面スクレイピングが正常にできないためとなっております。
この該当するサイトについては、
一番下まで移動する際にEndなどのホットキーが使用できない( カーソルブラウジングはOffにしており、ほかのページではEndが使用できております。)
ページの一番下と判定できる要素がない
そもそもページのスクロールが必要かどうか判断できる要素がないため
遷移したページで、画面スクロールを数十回繰り返すということを行っております。
上記のため遷移に時間がかかっており、
一瞬でページの一番下まで遷移できる方法を模索しております。
JSスクリプト挿入は試してみたのですが、当方があまり詳しくなくスクリプトが正しくないのか実行されませんでした。
解決方法がございましたらご教示いただけますと幸いです。
※実際のページやXaml等はセキュリティの関係上ご提供できません。
Yoichi
(Yoichi)
2
こんにちは
以下いかがでしょうか?
InjectJSScriptで以下をコールしています。
"function(e,v){
setTimeout(function() {
window.scrollTo(0,v);
},0);
}"
Sample
Sample20240523-1a.zip (4.9 KB)
1 Like
gorby
(gorby)
3
Webページのどこかを1回クリック後、NKeyboard ShortcutsアクティビティでSPACEキーを無限ループで連打する方式はダメでしょうか?0.3~0.5秒くらいでページ最下部に到達すると思います。
tan_tan
(tan_tan)
4
Yoichiさん
ありがとうございます。
いただいたXamlの中でアプリのステートの確認の中では
具体的にページのどの部分を指定すればよろしいでしょうか?
Xaml内で指定していたSelection部分がなく、該当しそうなものがCORAL-SHELLとなっております。
ご教示いただけますと幸いです。
tan_tan
(tan_tan)
5
gorbyさん
ありがとうございます。
可能であれば具体的にXamlのキャプチャ踏まえてご教示いただけますと幸いです。
Yoichi
(Yoichi)
6
Xaml内で指定していたSelection部分がなく、該当しそうなものがCORAL-SHELLとなっております。
ページの構成に依存しますので一概には言えませんが、例えばBody要素を指定しても良いように思えます。(画面上から指定できなければ、UiExploreから指定してみてください)
まずは上記のJSが動くかの確認になると思いますので、スクロールの範囲と合致する要素を適当にとってもらって動作するか確認してもらえればと思います。
1 Like
gorby
(gorby)
7
サンプルコードはこんな感じです。
繰り返し(後判定)アクティビティの条件を"True"に設定すると無限ループします。
tan_tan
(tan_tan)
8
ありがとうございます。
動作自体はできたのですがだいぶもっさりしていおり、、、
現状とあまり変わりなかった形となりました。
tan_tan
(tan_tan)
9
セレクターを指定してみたのですが、うまくいかず
この要素に辺りをつけるとよい等、この部分がわかればわかるなどございましたら
ご教示いただけますと幸いです。
gorby
(gorby)
10
小職の職場のEdgeでは0.5秒程度でWebページ最下部まで移動します。動作が遅いのは社内LANTrafficが混雑しているからではないでしょうか?
Yoichi
(Yoichi)
11
基本的にwindowのスクロールなので要素自体はあまり関係ありません。
サンプルは要素高さからスクロールする量を算定しているだけなので
例えば以下のように適当な大きい数字を与えてもスクロールするか
確認してみてはと思います?

また内容からするとページを非同期に読み込んでいるようにも思えますので、その場合は内容が読み込まれていませんので、最終的なページ下端を特定することは難しいと思います。
tan_tan
(tan_tan)
12
その可能性はあるかなと思っております。
実行前前後の待機時間を短くしてみましたが動作改善はなかったです。
tan_tan
(tan_tan)
13
ありがとうございます。
試しにいただいたもので実行してみましたが最下部への移動はできませんでした。
もし別の方法など思いつくものがございましたらご教示いただけますと幸いです。
Yoichi
(Yoichi)
14
これはサンプルに記載されているページ(Forumのページ)で動作しなかったということでしょうか?
それとも、今回問題となっているページで動作しなかったということでしょうか?
またスクロールはまったくしないのか部分的に動くのかどちらでしょうか?
もし別の方法など思いつくものがございましたらご教示いただけますと幸いです。
もう少し情報を共有いただかないと、検討が難しいですね。
tan_tan
(tan_tan)
15
情報足りておらず失礼いたしました。
Forumページについては問題なく動作しておりました。
問題となっているページでは全く動作いたしませんでした。
※スクロースは少しも動いておりませんでした。
gorby
(gorby)
16
LANTraffic混雑が原因であれば、UiPath側で対処は難しいのでは?LAN担当に相談してみてはいかがでしょうか。
tan_tan
(tan_tan)
17
Yoichiさん
javascriptで調べましたところ
非同期に関しては、document.documentElement.scrollTop= Y ; で出来るかものとのことで
“function(e,v){
setTimeout(function() {
e.scrollTop=v;
},0);
}”
にてパラメーターを100000ほどにして、最終下部まで移動することができました。
system
(system)
Closed
18
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.