かずきち。の日記

サーバサイドエンジニアのつぶやき

GoogleChromeの操作をSeleniumで自動化しよう!pipからコマンドの自動化まで!

自動化時代の幕開け

昨今は様々な自動化が世の中にあるわけです。

www.selenium.dev
引用:
https://www.selenium.dev/documentation/ja/

1990年代の改札は駅員が手作業で切符を切っている時代もありました。
まさに「ALWAYS 三丁目の夕日」です。

しかし今は多くのものが自動化され、医療から運転、様々のものが自動化されています。
その中にブラウザ操作の自動化があります。

www.selenium.dev
引用:
https://www.selenium.dev/documentation/ja/

Seleniumブラウザ自動化プロジェクトがあります。
W3C WebDriver仕様のインフラが使えるわけです。
有志貢献者の何千時間に及ぶ個々の時間を費やした事とソースコード自由に利用可能を誰にでも利用、楽しめ、そして改良できることによって実現しました。
とにかく自動化を使いこなしたいのには必要不可欠と言ってはないでしょうか?

まずselenium webdriver をインストール

pip install selenium

でまずはpythonパッケージを取りに行きましょう。

apt-get
homebrew
pip

コマンドで取りに行きます。

pip install selenium

を叩けば入ると思います。

次はpythonのコードを書きましょう

import time                            # スリープを使うために必要
from selenium import webdriver         # Webブラウザを自動操作する(python -m pip install selenium)
import chromedriver_binary             # パスを通すためのコード
 
driver = webdriver.Chrome()            # Chromeを準備
driver.get('https://www.google.com/')  # Googleを開く
time.sleep(5)                          # 5秒間待機
driver.get('https://www.yahoo.co.jp/')  # Yahooを開く
time.sleep(5)                          # 5秒間待機
driver.quit() 

コードを書いたら、「F5」でRunしましょう。
めっちゃ簡単ですね。

詰みポイントはブラウザの文字入力です。

まず前提として、プログラミングで文字を入力するのは単純に「a」をタイプしてではだめなんです。

重要なのは、どこに文字を入力するかプログラム上で指定しないといけないわけです。

文字を打ちたいけど、どこのフォームをしていするのは「Xpath」という概念です。
これがGoogleChrome上でどこのボックスに文字を入力するかの番地です。

f:id:kazukichi_0914:20210607123939g:plain

ディベロッパーツール「…⇢Copy⇢Copy XPath」でそこのボックスへの道順をコピーできます。

/html/body/ntp-app//div[1]/ntp-realbox//div/input

こんなPATHがそこのテキストボックスへのXPathになります。

driver.find_element_by_id("loginInner_u").send_keys("kazukichi_0914")

loginInner_uにkazukichi_0914という文字列をプログラム上から入力しましょうっていうことを表しています。

GoogleYahoo!を言ったり来たりしていると思います。
情報に簡単にブラウザ操作の自動化ができました。
人間は何もしていませんよ。
seleniumスクリプトも書きます。

seleniumでブラウザ操作を自動化します 毎日の提携作業のブラウザ操作やログイン情報入力にも対応