おさかなメモ

間違っていることを書いているかもしれません.もし間違いを見つけましたらコメントで教えてください!

selenium(-wire) の使い方

selenium-wireも基本的にはseleniumと同じだが,拡張されたものになっている.

selenium.webdriverがブラウザを操作する「webdriver」.これはlocal上でも動かせるし,remoteでも動かせる.dockerで動かす場合はremoteで動かすことになる. 例えば,localでchromeのdriverを用いるときは

from  selenium import webdriver
driver = webdriver.Chrome()

remoteの場合はこのページのdocker imageを用いてコンテナを起動しておく.また,driverの生成時にurlを指定する.

# 例
driver = webdriver.Remote("http://localhost:4444/wd/hub")

selenium.webdriver.common.keys.Keysはブラウザ上でReturnAltなどのキー操作するときに使う.

selenium.webdriver.common.by.Byはwebページのelementを指定するときに用いる.

注意点

ボタンclickなどで新しいtabが開いても,driverのactiveなtabにはならないので,明示的に切り替える必要がある. 良い実装かはわからないが,とりあえず

for handle in driver.window_handles:
    driver.switch_to.window(handle)

で切り替える事ができる.

selenium-wireseleniumに加えてresponceが保存されていて,http通信の内容が保存される.これを使うと通信したファイルを保存することなどが可能.

参考文献

selenium-python.readthedocs.io seleniumで読み込んだ画像をそのまま保存したい!! #Python - Qiita