一日一膳(当社比)

RとJavaと時々数学

python+seleniumで自動でブラウザ操作をする.

目次

1.Seleniumの概要

Selenium(公式サイト)とは,Webアプリケーションのテスト自動化に用いられるツールの一つです.このツールはブラウザ操作を自動で行えるため,Webアプリケーションのテスト以外の場面でも利用することが可能です.公式サイトによれば,SeleniumJava, Python, JavaScript, C#, Rubyからの利用をサポートしています.また,Chrome, FireFox, IE等の操作をselenium上で実行することが可能です.

2.pythonseleniumを操作する

このトピックでは,pythonseleniumによるブラウザ操作を実際に行ってみましょう.以下の実行環境等は以下のものを想定しています.

準備

準備として,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()

撮ったスクショはこちら.

f:id:kimigayoseishou:20181111225727p:plain 

 

3)ソースの注釈

seleniumモジュールには,web画面上のDOM要素にid, class名, name, css selectorなどによってアクセスするメソッドが用意されている(API Reference).今回はそれらは利用せずにブラウザ操作をjavascriptで書き,execute_script()メソッドによってブラウザ実行させる形で書いてみた.