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とパスワードを使用してログインするものです。ただし、エラーが発生する可能性があります。以下の点に注意してください:

  1. ログインフォームが表示されるまで待機することが重要です。sleep()関数を使用して一定時間待機するのではなく、WebDriverWaitを使用して要素が表示されるまで待機しましょう。

  2. 要素を特定する際に、正しいセレクタ(IDやクラス名など)を使用しているか確認してください。指定されたIDやクラス名が正しいかどうかを確認してください。

  3. ログインボタンをクリックする前に、ログインフォームにログイン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()

この修正を行うことで、ログイン関数が正常に動作するはずです。ただし、ログインフォームのセレクタや待機時間などは、実際のウェブページの構造に合わせて調整する必要があります。

未分類

Posted by ぼっち