https://www.nike.com/register에서 Selenium 및 Python을 사용하여 이메일 주소 필드를 채우는 방법

Aug 18 2020

셀레늄을 사용하여 여기 nike 웹 사이트의 등록 양식을 작성하려고합니다. https://www.nike.com/register 그러나 xpath 또는 id를 사용하여 요소를 찾을 수 없습니다.

지금까지 시도한 내용은 다음과 같습니다.

chrome_options = Options()
chrome_options.add_argument("--incognito")
chrome_options.add_argument("start-maximized")
driver=webdriver.Chrome('/Users/cameron/Desktop/untitled folder/chromedriver')

driver.get('https://www.nike.com/gb/membership')
main_window = driver.current_window_handle
driver.find_element_by_xpath('//*[@id="69dcecd3-722e-42c0-aa82-358c4160ae8d"]/div/div/div[2]/a').click()

WebDriverWait(driver, 5)
driver.find_element_by_xpath('/html/body/div[2]/div[3]/div[4]/form/div[1]/input').click()

웹 사이트를 탐색 할 때 제대로 작동하지만 가입 양식을 작성하려고 할 때 요소를 찾을 수 없습니다.

답변

DebanjanB Aug 18 2020 at 04:12

송신하려면 문자 순서를 받는 사람 이메일 주소 는 유도해야 필드 WebDriverWait을 을 위해 element_to_be_clickable()당신은 다음 중 하나를 사용할 수 있습니다 로케이터 전략 :

  • 사용 CSS_SELECTOR:

    driver.get('https://www.nike.com/gb/membership')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a[aria-label='Join Us'][href='https://www.nike.com/register']"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='emailAddress']"))).send_keys("[email protected]")
    
  • 사용 XPATH:

    driver.get('https://www.chegg.com/auth?action=login&redirect=https%3A%2F%2Fwww.chegg.com%2F')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@aria-label='Join Us' and @href='https://www.nike.com/register']"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@name='emailAddress']"))).send_keys("[email protected]")
    
  • 참고 : 다음 가져 오기를 추가해야합니다.

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • 브라우저 스냅 샷 :