Cách điền trường địa chỉ Email trong https://www.nike.com/register bằng Selenium và Python
Aug 18 2020
Tôi đang cố gắng sử dụng selen để điền vào biểu mẫu đăng ký trên trang web nike tại đây: https://www.nike.com/register nhưng nó không thể tìm thấy các phần tử bằng cách sử dụng xpath hoặc id.
Đây là những gì tôi đã thử cho đến nay:
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()
nó hoạt động tốt khi điều hướng trang web nhưng nó không thể tìm thấy các yếu tố khi cố gắng điền vào biểu mẫu đăng ký
Trả lời
DebanjanB Aug 18 2020 at 04:12
Để gửi một chuỗi ký tự đến trường địa chỉ Email, bạn phải tạo WebDriverWait cho element_to_be_clickable()và bạn có thể sử dụng một trong các Chiến lược định vị sau:
Sử dụng
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]")Sử dụng
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]")Lưu ý : Bạn phải thêm các lần nhập sau:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as ECẢnh chụp Trình duyệt: