python+seleniumで自動でブラウザ操作をする.
目次
1.Seleniumの概要
Selenium(公式サイト)とは,Webアプリケーションのテスト自動化に用いられるツールの一つです.このツールはブラウザ操作を自動で行えるため,Webアプリケーションのテスト以外の場面でも利用することが可能です.公式サイトによれば,SeleniumはJava, Python, JavaScript, C#, Rubyからの利用をサポートしています.また,Chrome, FireFox, IE等の操作をselenium上で実行することが可能です.
2.pythonでseleniumを操作する
このトピックでは,pythonとseleniumによるブラウザ操作を実際に行ってみましょう.以下の実行環境等は以下のものを想定しています.
準備
準備として,1)seleniumモジュールをインストール, 2)webdriverをダウンロードする必要があります.
1)seleniumモジュールをインストール
seleniumモジュールのインストールはpythonパッケージ管理ツールのpipライブラリを使うのがよいでしょう.
コマンドプロンプトを起動し,以下のコマンドを打てば1)は完了です.
cmd>>C:\Users\username\workdirectory> pip install selenium
2)chromedriverのダウンロード
chromedriverをダウンロードしてほしい.
Amazon.co.jpで商品を検索するデモ
最後に実際にseleniumを使ったブラウザ操作のデモを紹介する.
1)行うこと
- Amazon.co.jpにアクセス
- 商品検索フォームに'十割そば'と入力する
- フォームを送信する
- 検索結果画面をスクショし保存
2)ソースコード
#2018/11/11
#Amazon.co.jpにアクセスし,十割そばを検索しスクショを撮る
from selenium import webdriver
#chromedriverのPATHを指定
PATH = "C:\\Users\\username\\workdirectory\\selenium\\webdriver
\\chromedriver_win32\\chromedriver.exe"
driver = webdriver.Chrome(executable_path=PATH)
#Amazon.co.jpへアクセス
driver.get("https://www.amazon.co.jp/")
#検索フォームに記入するscript
item = "十割そば"
search_script = "document.getElementById(\"twotabsearchtextbox\").value='%s'"
submit_script = "document.getElementsByClassName(\"nav-searchbar\")[0].submit()"
#scriptを実行
driver.execute_script(search_script % item)
driver.execute_script(submit_script)
#スクショを撮る
driver.save_screenshot("screen_shot.png")
print("finish")
driver.close()
撮ったスクショはこちら.
3)ソースの注釈
seleniumモジュールには,web画面上のDOM要素にid, class名, name, css selectorなどによってアクセスするメソッドが用意されている(API Reference).今回はそれらは利用せずにブラウザ操作をjavascriptで書き,execute_script()メソッドによってブラウザ実行させる形で書いてみた.