前提・実現したいこと
etypingというサイトをpython seleniumで自動化してみたいと思いました
発生している問題・エラーメッセージ
文字の入力画面になっても自動で入力されない
入力する文字を取得できない
エラーメッセージ
DevTools listening on ws://127.0.0.1:64810/devtools/browser/3a248757-5587-4fec-87d0-18824a118c26
etyping.py:17: DeprecationWarning: use driver.switch_to.frame instead
driver.switch_to_frame('typing_content')
Traceback (most recent call last):
File "etyping.py", line 30, in <module>
sentence = driver.find_element_by_xpath('//[@id="sentenceText"]/div/span<img class="ranking-number" src="https://www.mittsu-kosen.com/wp-content/themes/jin/img/rank02.png" />').text
File "C:\Users\Aram_maki\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "C:\Users\Aram_maki\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "C:\Users\Aram_maki\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\Aram_maki\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression //[@id="sentenceText"]/div/span<img class="ranking-number" src="https://www.mittsu-kosen.com/wp-content/themes/jin/img/rank02.png" /> because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//*[@id="sentenceText"]/div/span<img class="ranking-number" src="https://www.mittsu-kosen.com/wp-content/themes/jin/img/rank02.png" />' is not a valid XPath expression.
(Session info: chrome=83.0.4103.61)
#e-typingの画面にフォーカス driver.switch_to_frame('typing_content') start_button = driver.find_element_by_xpath('//*[@id="start_btn"]') start_button.click() time.sleep(2) #スペースキーを入力 body_element = driver.find_element_by_tag_name('body') body_element.send_keys(Keys.SPACE) time.sleep(3.5) #繰り返す while True: #テキストを取得 sentence = driver.find_element_by_xpath('//*[@id="sentenceText"]/div/span<img class="ranking-number" src="https://www.mittsu-kosen.com/wp-content/themes/jin/img/rank02.png" />').text for key in (sentence): body_element.send_keys(key) time.sleep(1)
試したこと
フレームの切り替え
try
except: break の消去
補足情報(FW/ツールのバージョンなど)
python3.8 windows10 64bit home
回答1件
あなたの回答
tips
プレビュー