調べ物した結果

現役SEが仕事と直接関係ないことを調べた結果とか感想とか

CookieClickerをPython Selenium自動的に進める試み①

何をしたか

・学生の頃ちょっとしたブームだったブラゲークッキークリッカーのクリックを自動化してみた。(seleniumを使ってみたかった)

 f:id:couraeg:20190311220545p:plain

※オレンジの枠線以外はゲーム画面の引用です。

枠線の部分を自動でクリックするようにした。

・バグがありありで、まだまだ拡張が足りないので「①」。気が向いたらもう少しまともにする(セーブ、ロードができない。動きっぱなし、アップデートしない等

中の人の現状

Python⇒ほとんど触ったことない。

Selenium⇒ほとんど触ったことない。

・Git⇒仕事で使ってるから大体わかる。

JavaScript⇒ほとんど触ったことない。

参考リンク

PythonからPythonファイルを読み込み使用する - Qiita

Selenium API(逆引き)

PythonとSeleniumを使ったブラウザ自動操作 – 名古屋のWebシステム開発 iNet Solutions

参考リンクを見るとほとんど完成してしまう!

ソース

sample.py

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

class Sample:
    
    # driverpath=各種Webドライバーexeのフルパス
    def __init__(self, driverpath):
        # ドライバーパスを指定 
        self.driver = webdriver.Chrome(driverpath)

    def exec(self):
        # URLに移動
        self.driver.get("http://natto0wtr.web.fc2.com/CookieClicker/")

        while True :
            try :
                # cookieボタン見つけてクリックさせる
                element = self.driver.find_element_by_id("bigCookie")
                element.click()

            except Exception as e :
                print(e)

力わざにまみれてるので一部補填

    # driverpath=各種Webドライバーexeのフルパス
    def __init__(self, driverpath):
        # ドライバーパスを指定 
        self.driver = webdriver.Chrome(driverpath)

コンストラクタ。ソース公開するのにドライブのディレクトリ見せるのが嫌だったからひとまずこれで。

※使用するときはパスを指定しないと動かない~..\selenium\drivers\chromedriver_win32\chromedriver.exe


                # cookieボタン見つけてクリックさせる
                element = self.driver.find_element_by_id("bigCookie")
                element.click()

"bigCookie"はChromeのF12(開発者ツール)でソースをじっくり眺めてたぶんこれかなー。で掘り当てた

            except Exception as e :
                print(e)

いろいろ拙いせいでボコボコエラーで落ちるので無理やりキャッチ。

所感

・わかってはいたけど、そこら中で同じようなことしている人の記事がボロボロでてきて意義がよくわからなくなったりした。
・開発者ツールすごい。seleniumすごい。
Cookieをクリックするゲームなのに自動化してどうするんだろう。
・実績:奇怪なクリック。をゲットできる。

 GitHub

github.com