#2 SeleniumでWebを自動操作してみる ~Python + GoogleChrome + Selenium でマトリクス認証を突破する~

1. マトリクス認証とは
2. SeleniumでWebを自動操作してみる ← 今回
3. マトリクス認証でパスワードを自動入力する
4. Seleniumをexeファイル化し、クリック1つで認証を完了させる

注意事項

* クラッキング目的ではありません。あくまで個人目的で使用しましょう。
* プログラムが流出するとマトリクス認証を破られます。管理には気を付けてください。
* テストには自分で作成したWebサイトを使用します。エンタープライズのマトリクス認証でテストをするのは避けましょう。

前提

pythonがインストールされていること

セットアップ

seleniumのインストール
コマンドラインから以下のコマンドを実行してインストールします。

pip install selenium

Chrome用のWebDriverをダウンロード
自分の使用しているGoogleChromeのバージョンをチェックしましょう。
※ [設定] - [Chromeについて]から確認できます。

f:id:lc-xx16:20200505214254p:plain

GoogleChromeのバージョンに合ったWebDriverをダウンロードします。
sites.google.com

※WebDriverのバージョンが異なるとエラーになります。定期的にブラウザがバージョンアップするので、作成したSeleniumが動かなくなった場合は、バージョンを確認しましょう。

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 79
実際に試してみる

Seleniumが実行できるか試してみます。
今回は実行したときに、Webページを開き、InputBoxにデータを自動入力するサンプルを使います。

from selenium import webdriver

# WebDriverを保存したURL
DRIVER_URL = 'D:\selenium\chromedriver.exe'

# 操作対象のWebURL(今回はローカルのhtmlを操作)
WEB_URL = 'file:///D:/selenium/sample.html'

# ドライバーを読み込む
driver = webdriver.Chrome(DRIVER_URL)

# ページを開く
driver.get(WEB_URL)

# 'password'というnameのオブジェクトを取得する
password = driver.find_element_by_name('password')

# passwordのオブジェクトに'test input'を入力する
password.send_keys('test input')

これを実行すると自動でWebブラウザが立ち上がり、"test input"がInputBoxに自動入力されます。

まとめ

今回は自動でWebブラウザを操作できる環境が整備しました。
実際にマトリクス認証を突破できるようにしていきたいと思います。