はじめに
タイピングを練習してもなかなか速くならないのでSeleniumで自動化してハイスコア叩き出します。
実行環境
- マシン:MacBook Pro (Retina, 13-inch, Mid 2014)
- CPU:2.8 GHz Intel Core i5
- メモリ:16 GB 1600 MHz DDR3
- プログラミング言語:Python 3.6
プログラム
chromedriverを以下から最新版をダウンロード、解凍してプログラムと同じディレクトリに配置して下さい。
https://sites.google.com/a/chromium.org/chromedriver/downloads
main.py
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
url='https://www.e-typing.ne.jp/roma/check/'
driver = webdriver.Chrome(executable_path='chromedriver')
driver.get(url)
# 今すぐチェック!をクリック
driver.find_element_by_class_name('edro').click()
time.sleep(1)
# モーダルにスイッチ
driver.switch_to_frame('typing_content')
# スタートをクリック
driver.find_element_by_xpath('//div[@id="start_btn"]').click()
time.sleep(1)
# スペースキーでスタート
driver.find_element_by_tag_name("body").send_keys(Keys.SPACE)
time.sleep(4)
while True:
try:
sentences = driver.find_element_by_xpath('//div[@id="sentenceText"]').find_elements_by_tag_name('span')[1].text
for sentence in sentences:
driver.find_element_by_tag_name("body").send_keys(sentence)
time.sleep(1)
except:
break
あまり速すぎるとスコアが-1になってしまうのでループの途中でtime.sleep()を入れています。
実行結果
実行環境が低スペックのうえ、録画しながらスクリプトを実行したためあまり速度が出ていませんが、録画なしの場合スコア1000以上を叩き出すことができました。