Ruby
Selenium
selenium-webdriver
CookieClicker

Seleniumを使ってクッキークリッカーを自動化してみた

はじめに

Seleniumの勉強がてら、一昔前に流行ったクッキーをひたすらクリックするゲームを自動化してみます。

クッキークリッカーとは

一昔前に流行ったクッキーをクリックして増やす。それだけのゲームです。
昔は貴重な休みを潰してひたすらクリックしていました。中毒性すごい。

環境

windows10(64bit)
ruby 2.4.1
selenium-webdriver 3.4.3

やりたいこと

-クッキーを自動でクリックする
 1番やりたいこと。適当な回数を自動的にクリックできるようにする
-セーブデータの出力
 seleniumはあくまでテストツールなので、ブラウザを閉じてしまうと
 クッキーをクリックした実績がなくなってしまう。
 そこでクッキークリッカーにあるセーブ出力機能を使ってセーブ情報を保存しておく。
-前回データの読み込み
 前述で出力したデータをブラウザ起動時に読み込ませて前回の続きからクリックさせたい。

コードを書いてみた

autoClicker_test.rb
require "selenium-webdriver"

#Chrome用のドライバ
driver = Selenium::WebDriver.for :chrome

#CookieClickerにアクセスする
driver.get "http://orteil.dashnet.org/cookieclicker/"

#読み込み時間があるのでスリープ
sleep 3

#セーブデータのインポート
impFile = "C:\\test.txt"
driver.find_element(:id,"prefsButton").click
driver.find_element(:link,"Import save").click
saveCode = File.open(impFile).read
driver.find_element(:id,"textareaPrompt").send_keys(saveCode)


#クッキーの要素を取得
nmlCookie = driver.find_element(:id,'bigCookie')

#クッキーをクリックする回数を設定
clickCnt = 10

#clickCnt分クッキーをクリックする
i = 0
while i < clickCnt
  nmlCookie.click
  i += 1
end

#セーブデータを出力する。
driver.find_element(:link,"Save to file").click
#出力に時間がかかるのでsleep
sleep 3

#ブラウザを終了する
driver.quit

セーブデータの出力先を変更したかったのですが、デフォルトでダウンロードフォルダに出力されてしまうようでした。
ここは変え方がわからなかったので断念。