私、RPAは基本的にAutoItを使います。ローカルのツールを制御するのは割と手堅いのですが、長時間放置するような場合だと、想定した操作が実現せずに迷子になってしまうケースがままあります。Explorer上でのアイコンクリックも、やばめです。何が起きているのかはなかなかわからないのですが、起きているケースはほとんどが「WEBブラウザの操作」なので、「リンクをクリックしたつもりが、マウスカーソルが微動してドラッグになっている」という現象だと推察されます。
「遷移が遅れたら、遷移するまで待つ」というコードを組み込むと、大体そのコードで待ちぼうけを食らっているので、遷移し損ねているのは間違いなさそうです。そんな場合、どうすればよいでしょうか。私のお勧めは、下記のようなMouseClick()とMouseClickDrag()のラッパーを書いて置き換えることです。
;BlockInputは管理者権限でないと機能しない
#requireAdmin
;MouseClick,MouseClickDragは、ユーザー入力がノイズとなって効かない可能性がある
;具体的に言うと、マウスクリック時にマウスカーソルが揺れると、ブラウザ上では画像クリックではなく
;画像ドラッグとなってしまって効かなくなる
Func BIMouseClick ($btnname, $x=-1, $y=-1, $clicks = 1 , $speed = 10)
If $x = -1 or $y = -1 Then
Local $aPos = MouseGetPos()
$x = $aPos[0]
$y = $aPos[1]
EndIf
BlockInput(1)
MouseClick($btnname, $x, $y, $clicks, $speed)
BlockInput(0)
EndFunc
Func BIMouseClickDrag ($btnname, $x1, $y1, $x2, $y2, $speed = 10)
BlockInput(1)
MouseClickDrag($btnname, $x1, $y1, $x2, $y2, $speed)
BlockInput(0)
EndFunc
小ネタでした!
本当は、クリップボード経由でのブラウザ拡張やExcel VBAとの連携なんかをご紹介したほうが付加価値感はあるのでしょうが、ひとまず、資格記事がトップだと落ち着かない、というのがあって、無理くりコード入りの記事をポストしました。