pythonでRPAっぽいことをやってみた
公開 2023/06/15 11:20
最終更新
-
10日ごととか、月一みたいに行う定型作業がありますので、これまではPythonを使ってRPAのようなものを作成していました。その際にpyautoguiというライブラリを使用していました。
pyautoguiは画面上の画像イメージを取得し、画面上から一致する位置を探し出す機能を提供します。もし見つけた位置にボタンがあれば押したり、テキストボックスがあれば文字列を入力したりすることができます。
しかし、この方法をWebブラウザに表示される要素に適用しようとすると、ある日を境にうまく動作しなくなってしまいました。おそらくブラウザのアップデートにより、微妙なイメージの変化が生じているため、保存したイメージファイルと一致しなくなったのだと思われます。
目視では違いはわかりませんでしたが、イメージ比較ツールを使用することで違いがわかりました。私自身は作成者の立場ですので、必要な時にイメージを再取得して使用していましたが、他の人にはこの方法は使いづらいでしょう。
しかし、Seleniumというライブラリを試してみたところ、うまく機能しました。これはイメージの一致を利用するのではなく、ページの構成要素から項目を特定することができるためですね。ブラウザを自動テストモードでどうさせるということらしいです。
しばらく使って問題がなさそうなら、関係者に直接使ってもらおうと思います。
RPAツールは一般に有料のものが多く、なかなか手が出せません。しかし、うまく活用できれば定型業務の手間を削減できるため、ぜひ導入したいと考えています。ただ、私の周りにはRPAを活用しようとする人がいないため、お金を無駄にする可能性があります。
とりあえず、Seleniumならある程度手を離れて運用できそうなので、他の業務にも適用できると思います。ただし、ブラウザ以外のアプリケーションでもRPAを行う場合には、pyautoguiも必要になりますのでSeleniumさえあればすべてOKというわけにはいきませんが。
pyautoguiは画面上の画像イメージを取得し、画面上から一致する位置を探し出す機能を提供します。もし見つけた位置にボタンがあれば押したり、テキストボックスがあれば文字列を入力したりすることができます。
しかし、この方法をWebブラウザに表示される要素に適用しようとすると、ある日を境にうまく動作しなくなってしまいました。おそらくブラウザのアップデートにより、微妙なイメージの変化が生じているため、保存したイメージファイルと一致しなくなったのだと思われます。
目視では違いはわかりませんでしたが、イメージ比較ツールを使用することで違いがわかりました。私自身は作成者の立場ですので、必要な時にイメージを再取得して使用していましたが、他の人にはこの方法は使いづらいでしょう。
しかし、Seleniumというライブラリを試してみたところ、うまく機能しました。これはイメージの一致を利用するのではなく、ページの構成要素から項目を特定することができるためですね。ブラウザを自動テストモードでどうさせるということらしいです。
しばらく使って問題がなさそうなら、関係者に直接使ってもらおうと思います。
RPAツールは一般に有料のものが多く、なかなか手が出せません。しかし、うまく活用できれば定型業務の手間を削減できるため、ぜひ導入したいと考えています。ただ、私の周りにはRPAを活用しようとする人がいないため、お金を無駄にする可能性があります。
とりあえず、Seleniumならある程度手を離れて運用できそうなので、他の業務にも適用できると思います。ただし、ブラウザ以外のアプリケーションでもRPAを行う場合には、pyautoguiも必要になりますのでSeleniumさえあればすべてOKというわけにはいきませんが。