Comment remplir le champ Adresse e-mail dans https://www.nike.com/register en utilisant Selenium et Python

Aug 18 2020

J'essaie d'utiliser du sélénium pour remplir le formulaire d'inscription sur le site de nike ici :https://www.nike.com/registermais il ne peut pas trouver les éléments en utilisant le xpath ou l'id.

Voici ce que j'ai essayé jusqu'à présent :

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()

cela fonctionne bien lors de la navigation sur le site Web mais il ne trouve pas les éléments lors de la tentative de remplissage du formulaire d'inscription

Réponses

DebanjanB Aug 18 2020 at 04:12

Pour envoyer une séquence de caractères dans le champ Adresse e -mail , vous devez induire WebDriverWait for the element_to_be_clickable()et vous pouvez utiliser l'une des stratégies de localisation suivantes :

  • Utilisation 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]")
    
  • Utilisation 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]")
    
  • Remarque : Vous devez ajouter les importations suivantes :

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • Instantané du navigateur :