#きっかけ
飲み会の席で、会社の同僚がRPAで勤怠の自動入力をしてくれるプログラムを作ったということを聞きました。
そこで彼の話からseleniumの存在を知り、自分も触ってみたいと思いました。
導入には下記サイトを参考にさせていただきました。
【超便利】PythonとSeleniumでブラウザを自動操作する方法まとめ
https://tanuhack.com/selenium/
つまづいた点として、Google Chromeとchromedriverのバージョンを合わせる必要がありました。
12/3日時点ではGoogle Chromeの最新バージョンが78なのに対し、
chromedriverの最新版はベータ版の79用のものでした。
そのため、chromedriverの最新版では動きませんでしたので改めて78用をダウンロードしました。
#作ったもの
ブラウザを起動し、AWSのマネジメントコンソールにログインしてくれるプログラムを作りました。
まずはモジュールのインポートです。
from selenium import webdriver
次に、関数を2つ作成しました。
send_idは、htmlの中の入力フォームのidを指定し、その入力フォームに対してkeyを入力します。
id_clickは、htmlの中の送信ボタンのidを指定し、そこをクリックします。
#idの入力フォームにkeyを入力
def id_send(id,key):
driver.find_element_by_id(id).send_keys(key)
#idのボタンをクリック
def id_click(id):
driver.find_element_by_id(id).click()
次に、ローカルにあるクローム用のドライバーを指定します。
開くブラウザはAWSのマネジメントコンソールです。
#ローカルにあるクローム用のドライバーを指定
driver = webdriver.Chrome('C:\\Users\\username\\Desktop\\selenium\\chromedriver')
#ブラウザを開く
driver.get('https://ap-northeast-1.console.aws.amazon.com/console/home?region=ap-northeast-1#')
開かれたブラウザでF12、入力フォームの情報を探します…(htmlの知識が全然ないので手探り)
id="resolved_inut"
ってやつがそれっぽいですね。
では、ここにアカウントIDを入力&送信するように、作った関数を使います。
アカウントIDのところには実際には12桁の数字を入れます。
#1つ目の画面の入力、送信
id_send('resolving_input','アカウントID')
id_click('next_button')
ここでも同じようにユーザー名、パスワードの入力フォームのIDを探し、プログラムに落とし込みます。
id_send('username','username')
id_send('password','password')
id_click('signin_button')
以上が今回のプログラムでした。
#感想・今後の課題
今回はこの程度の簡単なログインでしたが、htmlやcss、javascriptについてもっと勉強すれば、
自動化の幅も広がりそうだなーと感じました。
自分でサイトを作ってみたりしながら知識を深めたいです。