【17/8/14】Seleniumについて調べてみる

Seleniumには、Selenium RCとWebDriverの2つがあり、RCの方はJavascriptを操作対象ブラウザに埋め込んで操作するためにセキュリティの問題から欠点があった。

そこで、ブラウザの拡張機能やネイティブな機能を使ってブラウザを操作することが出来るWebDriverができた。

Selenium3からはWebDriverがメインとなりRCは開発されなくなる模様。
また、WebDriverのAPIはW3Cで標準化が進められているので、ほぼRCは使われなくなると思われる。

詳細は以下HPを参照。

Selenium WebDriverの仕組み

Selenium WebDriverは各種ブラウザごとにドライバが用意されています。それらのドライバはJSON Wire ProtocolというSeleniumが定義しているRESTful API*に対応しており、このAPIにしたがってリクエストすることでブラウザを操作することができます。
引用:https://app.codegrid.net/entry/selenium-1

詳しくは、上記引用に使い方が記載されているが、簡単にまとめるとドライバーをダウンロードして、ドライバーを起動すると9515番ポートでドライバが起動する。

待ち受けているポート(API)に対して、リクエストを投げることで操作する仕組みのようだ。

言語ごとにSeleniumのクライアント(ライブラリ)が用意されているようなので、それを使って操作する。

上記Pythonの公式ページから引用したサンプルを見てみると

Example 1:(以下の操作をする)

1.Firefox を開く
 2.Yahoo へアクセス
 3.検索窓に「seleniumhq」と入力し検索
 4.ブラウザを閉じる

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
browser.get(‘http://www.yahoo.com')
assert ‘Yahoo!’ in browser.title
elem = browser.find_element_by_name(‘p’) # Find the search box
elem.send_keys(‘seleniumhq’ + Keys.RETURN)
browser.quit()

Zabbixとともにコンテナ上に、Seleniumもインストールして監視サーバ群を構成するか?CUIベースなのでブラウザが動くか要検証。

もし動かない用であれば、PhantomeJSを使ってWebシナリオ監視を実現させるかを要検討。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.