2014 8月25日 16:20
Haskell で Selenium
たまには Haskell が書きたかったので、コマンドラインからあるウェブサービスに書き込みできるようにしたが失敗した。 失敗したというか画面を進めていくと止まってしまう。 なにやらアラートがでて処理ができていない感じなのだろうか。 Rubyでやっても停止するので、Haskellの問題ではない。 一応、最低限の使い方がわかったのでメモしとく。 利用したのは、hs-webdriver と phantomJS。 phantomJS は –webdriver オプションを使用することで、SeleniumのServerとして使えるようになる。 Haskellでは Selenium と対話するための webdriverというライブラリがあって制御することが可能。 Google にアクセスしてスクリーンショットを作成するプログラムをかいてみた。 {-# LANGUAGE OverloadedStrings #-} import Test.WebDriver import Control.Monad.IO.Class import qualified Data.ByteString.Lazy.Char8 as B main :: IO () main = runSession defaultConfig $ do openPage "http://google.co.jp/" screenshotWriteFile "google.png" screenshotWriteFile:: FilePath -> WD () screenshotWriteFile name = do string <- screenshot liftIO . B.writeFile name $ string 事前に $ phantomjs --webdriver=4444 としてから実行する。