こんにちは、ゆきとです。
現在、新人社員研修でタイピングの練習をe-typing(タイピング練習サイト)で行っているのですが、合格ラインのノルマ(スコア300)を達成できません。もうすでにタイピングの練習をしだしてから3週間ほど経過するというのに嘆かわしいことです。
そこで私は気づいてしまいました。あれ?自動化すればいいんじゃね?ということでタイピングを自動化してみました(笑)(なんの解決にもなってないとか言うんじゃないよ)
この記事では、すでにseleniumを使って開発したことがあるという前提で書いています。もしまだseleniumを使って開発したことがないよって方は、こちらの記事がわかりやすく説明してくださっているのでご覧ください。
selenium導入
上の記事を補足しつつざっとまとめると、Seleniumを使うには
pip install selenium
使うブラウザのバージョンを調べて、一つ古いバージョンのドライバーをインストール
(ブラウザを操作するには、各ブラウザに合わせてドライバーを用意する必要がある)
今回は Chrome を使用するので 公式サイトから ChromeDriver をダウンロード。
ソースコード内のexecutable_pathにChromeドライバーをダウンロードしたpathを記入
executable_path = ”ドライバーの実行ファイルを保存した場所”
以上です!
下に実行結果を載せておきます。
実行結果
youtu.be
こんな感じでe-typingを自動化できます。
前置きはここまでにしてソースコードの紹介です
環境
Mac (OS version 10.15.4)
python 3.7.6
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from time import sleep
from selenium.webdriver.common.keys import Keys
import selenium
import time
import sys
start = time.time()
driver = webdriver.Chrome(executable_path='yourpath/chromedriver')
url = "https://www.e-typing.ne.jp/roma/variety/long.asp"
driver.get(url)
sleep(2)
print(driver.current_url)
check_btns = driver.find_elements_by_xpath("//a[@class='keybo']")
for check_btn in check_btns:
check_btn.click()
break
sleep(2)
print(driver.current_url)
try:
driver.switch_to_frame('typing_content')
print("Change iframe")
driver.find_element_by_id('start_btn').click()
print("click start_btn")
sleep(2)
body_element = driver.find_element_by_tag_name('body')
body_element.send_keys(Keys.SPACE)
time.sleep(3.5)
sentence = driver.find_element_by_xpath('//div[@id="sentenceText"]').text
print(sentence)
for key in(sentence):
body_element.send_keys(key)
sleep(0.03)
except selenium.common.exceptions.NoSuchElementException:
driver.quit()
sys.exit()
大変面白いものが作れました。明日は何を作ろかにゃん。
今日の内容は以上です。
今日もブログを読んでくださりありがとうございます。
少しでも参考になれば幸いです。
それでは!