def login(driver,login_url,login_id,login_pass): driver.get(login_url) sleep(5) driver.find_element(By.ID,”j_username”).clear() sleep(2) driver.find_element(By.ID,”j_username”).send_keys(login_id)#ログインIDを入力 sleep(2) driver.find_element(By.ID,”j_password”).clear() sleep(2) driver.find_element(By.ID,”j_password”).send_keys(login_pass)#ログインPASSを入力 sleep(2) driver.find_element(By.CLASS_NAME,”jenkins-button”).click()
提供されたログイン関数は、指定されたURLにアクセスし、指定されたログインIDとパスワードを使用してログインするものです。ただし、エラーが発生する可能性があります。以下の点に注意してください:
-
ログインフォームが表示されるまで待機することが重要です。
sleep()関数を使用して一定時間待機するのではなく、WebDriverWaitを使用して要素が表示されるまで待機しましょう。 -
要素を特定する際に、正しいセレクタ(IDやクラス名など)を使用しているか確認してください。指定されたIDやクラス名が正しいかどうかを確認してください。
-
ログインボタンをクリックする前に、ログインフォームにログインIDとパスワードを入力することを確認してください。ログインボタンをクリックする前に、
send_keys()を使用してログインIDとパスワードを入力する必要があります。
修正されたログイン関数は次のようになります:
python
from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from time import sleep def login(driver, login_url, login_id, login_pass): driver.get(login_url) WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "j_username"))) driver.find_element(By.ID, "j_username").clear() driver.find_element(By.ID, "j_username").send_keys(login_id) # ログインIDを入力 driver.find_element(By.ID, "j_password").clear() driver.find_element(By.ID, "j_password").send_keys(login_pass) # ログインPASSを入力 driver.find_element(By.CLASS_NAME, "jenkins-button").click()
この修正を行うことで、ログイン関数が正常に動作するはずです。ただし、ログインフォームのセレクタや待機時間などは、実際のウェブページの構造に合わせて調整する必要があります。

ディスカッション
コメント一覧
まだ、コメントがありません