#author("2022-02-11T18:59:51+09:00","default:honma","honma")
#author("2022-02-12T15:55:40+09:00","default:honma","honma")
* ラズパイでSelenium [#n3800e79]

ラズパイでSeleniumを使用した作業の効率化に関する話題があったので試してみた。

** SDカードの準備 [#s61b4dc5]

インストール後の最初の儀式。
[[Raspberry Pi Imager:https://www.raspberrypi.com/software/]]でサクッとSDに書き込んでセットアップを完了。~
今回書き込んだOSは「Raspberry Pi OS Lite(32bit)」。デスクトップ機能は使用しないのでこれで十分。~
SSHでログインするのだが、Raspberry Pi Imagerの最新ではOSイメージの書き込み時に設定ができるようになっていた。~
インストール後の最初ログインでいつもの儀式を実施。

 $ sudo apt update
 $ sudo apt upgrade
 
 $ lsb_release -a
 No LSB modules are available.
 Distributor ID: Raspbian
 Description:    Raspbian GNU/Linux 11 (bullseye)
 Release:        11
 Codename:       bullseye

** python環境 [#h780f30f]

今回はpython3で導入(Raspberry Pi OSの標準環境はまだpython3)
今回はpython3で導入(Raspberry Pi OSの標準環境はpython3)

 $ sudo apt install -y python3 python3-pip
 $ python3 -V
 $ python -V
 Python 3.9.2

** selenium の導入 [#u1f963e7]

selenium の導入(バージョン指定をせずに導入すると selenium 4 なので注意)

 $ pip3 install selenium
 $ pip3 list | grep selenium
 selenium         4.1.0

** chromium-chromedriver の導入 [#c8cd12c5]

chromium-chromedriver の導入

 $ sudo apt install -y chromium-chromedriver
 $ dpkg -l | grep chromium
 ii  chromium-browser                     95.0.4638.78-rpt6                armhf        Chromium web browser, open-source version of Chrome
 ii  chromium-browser-l10n                95.0.4638.78-rpt6                all          chromium-browser language packages
 ii  chromium-chromedriver                95.0.4638.78-rpt6                armhf        WebDriver driver for the Chromium Browser
 ii  chromium-codecs-ffmpeg-extra         95.0.4638.78-rpt6                armhf        Extra ffmpeg codecs for the Chromium Browser

chromedriver のインストール先の確認

 $ which chromedriver
 /usr/bin/chromedriver

** ソースコード(selenium_google.py) [#m8f0f446]
** ソースコード(selenium_by_google.py) [#m8f0f446]

ネットでよく見かけるサンプルソースは selenium 3 だが、最新環境でセットアップすると selenium 4 となるため、一部書き換えが必要。

#highlight(python){{
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

# ブラウザをヘッドレスで起動するためのオプション指定
options = Options()
options.add_argument('-headless')
driver = webdriver.Chrome(options=options)

# Googleのトップ画面を開く
driver.get('https://www.google.co.jp/')

# 画面表示を最大5秒待つ
driver.implicitly_wait(5)

# 検索語を入力する
input_element = driver.find_element(By.NAME, 'q')
input_element.send_keys('Raspberry Pi' + Keys.RETURN)

# 検索結果が出るまでちょっと待つ
time.sleep(3)

# スクリーンショットを保存する
driver.save_screenshot('google.png')

# ブラウザを終了する
driver.close()

}}
#highlight(end)

#ref(selenium_by_google.py)

** 実行 [#hc51d0cd]

 $ python selenium_google.py
 $ python selenium_by_google.py

※Raspberry PiはRaspberry Pi財団の登録商標です。
#htmlinsert(rpi3b+.html);

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS