如何在中填写电子邮件地址字段https://www.nike.com/register 使用Selenium和Python

如何在中填写电子邮件地址字段https://www.nike.com/register 使用Selenium和Python,python,selenium,xpath,css-selectors,webdriverwait,Python,Selenium,Xpath,Css Selectors,Webdriverwait,我正在尝试使用selenium在nike网站上填写注册表:但它无法使用xpath或id找到元素 以下是我迄今为止所尝试的: chrome_options = Options() chrome_options.add_argument("--incognito") chrome_options.add_argument("start-maximized") driver=webdriver.Chrome('/Users/cameron/Desktop/unt

我正在尝试使用selenium在nike网站上填写注册表:但它无法使用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()
它在浏览网站时工作正常,但在尝试填写注册表单时找不到元素

要将字符序列发送到电子邮件地址字段,您必须使
元素可点击()
,并且您可以使用以下任一项:

  • 使用
    CSS\u选择器

    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("Cameroon08@stackoverflow.com")
    
  • 使用
    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("Cameroon08@stackoverflow.com")
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • 浏览器快照:

要向电子邮件地址字段发送字符序列,您必须使
元素可点击()
,并且您可以使用以下任一选项:

  • 使用
    CSS\u选择器

    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("Cameroon08@stackoverflow.com")
    
  • 使用
    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("Cameroon08@stackoverflow.com")
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
  • 浏览器快照:


谢谢你,我使用了CSS选择器方法,它很有效perfectly@Cameroon08好消息!!!很高兴能够帮助你!!!请点击我的答案旁边的空心记号,它就在votedown箭头的下方,所以记号变成绿色。我会做的,你如何获得CSS选择器,我似乎无法为其他元素获得正确的选择器。例如,密码字段在使用chromeThank的CSS选择器时不起作用。我使用了CSS选择器方法,它起作用了perfectly@Cameroon08好消息!!!很高兴能够帮助你!!!请点击我的答案旁边的空心记号,它就在votedown箭头的下方,所以记号变成绿色。我会做的,你如何获得CSS选择器,我似乎无法为其他元素获得正确的选择器。例如,使用chrome中的CSS选择器,密码字段不起作用