Seleniumのお勉強 (1)
テストにも使いそうだし、覚えると自動化にも使えそうなSeleniumのお勉強
まずはWindowsで動かす
Pythonで動かそうと思うんだけれどもさてPythonは何を入れればいいんだろう
cygwinを入れてて、python3が入ってる
でもwebdriverとやらとちゃんと連携取れるんだろうか
それとも python.org からダウンロードしてきて入れるべきだろうか
ふたつpythonが入ってるとかいう状態は気持ち悪い
こういうとこに選択肢はほしくないんだよなー
cygwinだと、うまくいってもたまたまかもしれないとか思ったりするし
なおブラウザはChromeを使います
特に宗教上の理由はありません
Firefox入れてないんで
とりあえずcygwinからやってみる
まずはChromeDriver
Getting started - ChromeDriver - WebDriver for Chrome を上から読みつつダウンロード
ChromeDriver 2.45っていうバージョン
適当なフォルダに保存して動かしてみる
$ ./chromedriver.exe
Starting ChromeDriver 2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387) on port 9515
Only local connections are allowed.
何かしら動いてはいる
cygwinのbashから起動できるというのは安心材料になるんだろうか
seleniumをインストールする
認証プロキシ超えでちょっと苦労するなど 日頃使っていないのがバレる
$ pip3 install --proxy=http://account:password@example.com:8080 selenium
Collecting selenium
Downloading https://files.pythonhosted.org/packages/80/d6/4294f0b4bce4de0abf13e17190289f9d0613b0a44e5dd6a7f5ca98459853/selenium-3.141.0-py2.py3-none-any.whl (904kB)
100% |████████████████████████████████| 911kB 68kB/s
Requirement already satisfied: urllib3 in /usr/lib/python3.6/site-packages (from selenium)
Installing collected packages: selenium
Successfully installed selenium-3.141.0
もうちょっとでπだ
ChromeDriverと同じフォルダにサンプルプログラムを作成
GettingStartedのをそのまま
ただしパスが通っていないのでwebdriver.Chrome()でパスを指定
import time
from selenium import webdriver
driver = webdriver.Chrome('./chromedriver')
driver.get('https://www.google.com/')
time.sleep(5)
search_box = driver.find_element_by_name("q")
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5)
driver.quit()
あっさり成功
じゃこれでいいか
quit()を呼んだところでブラウザが閉じる
呼ばなければそのままになるので続きを人間が操作することもできるな
自動化ツールとしてはそれもありそうだ
なお毎回認証プロキシのアカウントを聞かれると面倒なんだがっていうか
自動テストでそれは困るだろう
パスワード記憶させればいいような気がするけどどうするんだっけ?