วิธีกรอกที่อยู่อีเมลภายใน 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ภาพรวมของเบราว์เซอร์: