pythonを勉強していて、自動で任意のWEBページにログインするコードを書いているのですが、selenium.common.exceptions.TimeoutException: Message: の所でつまづいてしまったのでご教授いただきたいです。
今行っている処理としてはwait = WebDriverWait(browser, 10)でWEBページのロードから10待たせてみたものの上記のエラーが出てしまいます。
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait import time from bs4 import BeautifulSoup import pandas as pd CHROME = "/Users/kinseimisaki/Downloads/chromedriver 3" browser = webdriver.Chrome(CHROME) url = "https://sorare.com/" browser.get(url) time.sleep(3) print("ログインページにアクセスしました") #sorareの[sign in] をクリック elm_click = browser.find_element(By.XPATH,"//*[@id='root']/div/div[2]/div[1]/div[2]/header/div/div/div/div[2]/button[2]/span") time.sleep(3) elm_click.click() print("sign in を押しました") #ログインフォームにテキスト入力 USER = "〇〇" PASS ="〇〇" #処理までの時間を待たせる wait = WebDriverWait(browser,10) browser.find_element(By.XPATH,"//*[@id='Email']").send_key(USER) browser.find_element(By.XPATH,"//*[@id='Password']").send_key(PASS) print('テキストフォームへの入力が完了しました')
Xpathの指定が間違っているのではないでしょうか。また対象の用途にIDがついているようなのでXpathではなくID指定で取るようにした場合どうなるか確認ください。
どの行でのエラーですか?
browser.find_element(By.ID,'Email').send_key(USER)
browser.find_element(By.ID,'Password').send_key(PASS)
で実行してみても上記と同じエラーが出てしまいました、、
otn様のご質問について
実行時にはターミナルで"sign in を押しました"と表示されるのでそれ以下の文でselenium.common.exceptions.TimeoutException: Message: というエラーが出てしまうような状況です。
この場合は例外処理を行うのが良いのでしょうか
失礼しました。
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="Email"]"}
というエラーが出てしまうような状況です。

回答1件
あなたの回答
tips
プレビュー