PyAutoGUIを利用してGUIの自動化を試してみてハマった箇所(日本語キーボードが利用できない?@、\、:が入力できない?)|PythonでRPAを実現する方法

最近、RPA(Robotic Process Automation)が話題です。


Uipathを導入している大企業も多いので、自分もロボットを作ろうと気合を出して参考書籍を購入しまいた。実際に、Uipathの無料版をインストールしてみてブラウザ操作を自動化してみましたが・・・・・


動かない。予想外のエラーで何度も止まります。単純作業の自動化はそこまで知識がなくても実現できそうでしたが、条件分岐など複雑なことをやろうとすると一気にハードルが上がります。しかも、ソフト実行時の負荷も高く、自分のパソコンでは頻繁にフリーズが発生します。Pythonでコード書いたほうが早いし汎用性があることに気が付きました。

色々調べた結果、PyAutoGuiを使えば、キーボードやマウス操作の自動化ができそうでした。で、実際にコードを書いたのですが、予想外の場所でハマりました。

PyAutoGui の不具合

PyAutoGuiは日本語キーボードが対応していない。a,b,c,d,e,f,g等の文字は問題なく入力できますが、@とか:、¥などの特殊文字を入力することが出来ません。これはかなり問題です。@が打てないと、メールアドレスが入力できないんです。OMG。PyAutoGui使えなぁい。

回避策は?

色々調べてみたら、日本語をクリップボードにコピーして、クリップボードから貼り付ければ動作するらしい。
キーボードがダメなら、それ以外の方法で入力すれば良いと。わりと力技。

import pyautogui
import pyperclip
pyperclip.copy("test@gmail.com")
pyautogui.hotkey('ctrl', 'v')

上記のコードでメールアドレスが入力できます。
漢字の入力も問題なく出来ました!

本日の学び

PyAutoGui は日本語キーボード非対応! pyperclip を利用する!