いよいよコマンドリストの機能紹介の最終回、pasteに関してです。
公式は以下の通りです。
paste(文字列)
paste(貼り付ける位置の画像,文字列)
基本はtypeと同じ使い方ですが、最も異なるのはpasteは日本語入力を行える、という点かと思います。
ここでおまじないです。シクリックスで日本語を扱う場合、プログラムの頭の部分に以下の3行を加える必要があります。
import sys
reload(sys)
sys.setdefaultencoding('utf-8')#文字コードを変更
詳細なご説明は省かせていただきますが、この3行はシクリックス、と申しますかPythonで日本語を扱うときに必ず加える必要がある文言で、デフォルトの文字コードを変更するためのものです。
もう一つおまじないがあります。
print(u"業務自動化研究所")
というように、日本語の前には必ずuを付ける必要があります。
これを行いませんと文字化けしてしまいます。
ここで少しテストをしてみます。
以下のコードを実行してみましょう。
import sys
reload(sys)
sys.setdefaultencoding('utf-8')#文字コードを変更
print("業務自動化研究所")
print(u"業務自動化研究所")
popup(u"業務自動化研究所")
popup("業務自動化研究所")



メセージウインドウに関してはuがあっても無くても文字化けなし、ポップアップはuがないと文字化けしました。
頭の3行のおまじないを消すと、また違う挙動を示します。
シクリックス≒Pythonは私のようにVBAからプログラミングに入った人間にとっては、変数や文字コード、インデントなど大きな違いがあり戸惑います。
ただ、別の見方をするとシクリックスはPythonの基礎を勉強する良いツールになると思います。
また私は最近、VBAでコードを書く際もインデント等、Pythonをまねる書き方をするようにしています。その方が見やすくなりますし、頭が対応しやすくなります。
今回のまとめです。ヤフーで「業務自動化研究所」と検索する簡単なRPAを作ります。

import sys
reload(sys)
sys.setdefaultencoding('utf-8')#文字コードを変更
doubleClick("1582728839540.png")#ショートカットをダブルクリック
wait("1582729022570.png",15)#この画像が出るまで、最大15秒待機
wait(1)#予備で1秒待機
if exists("1582729093089.png"):#ウインドウが最大化されていない場合、
click("1582729105016.png")#最大化する
click("1582728864867.png")
paste("1582728883203.png", u"業務自動化研究所")#検索窓に入力
click("1582728946866.png")#検索ボタンをクリック
うまく動きましたでしょうか?
今回は少しサボってしまいましたが、SikuliX(シクリックス)は画像が表示されるまで3秒待ち、それで画像が現れない場合強制停止します。
今回ですとブラウザの処理のため、ボタンを押すごとに本来は読み込み待ちが必要です。waitの処理を毎回挟むのが正解です。
Comments