问题描述
我正在尝试使用 selenium 创建登录机器人,当它登录时返回服务器错误,我不知道这是内部错误还是因为我正在使用机器人。
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import webdriverwait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
from getpass import getpass
email= input("Enter your username")
password= getpass("Enter your password: ")
driver=webdriver.Chrome("C:\\Users\\alvar\\env\\ChromeDriver\\chromedriver.exe")
driver.get("https://www.basic-fit.com/on/demandware.store/Sites-BFE-Site/es_ES/Login-Start")
username_textBox = driver.find_element_by_name("email")
username_textBox.send_keys(email)
password_textBox= driver.find_element_by_name('password')
password_textBox.send_keys(password)
login_button = driver.find_element_by_xpath("/html/body/div[1]/div[2]/section[1]/div[2]/form/div[4]/button").submit()
解决方法
你必须click()
按钮,而不是submit()
当您 click
时,它会运行 JavaScript 来检查登录名/密码。
当您 submit
时,它不会点击按钮,而是将 form
发送到指定的 url <form action="https://www.basic-fit.com/on/demandware.store/Sites-BFE-Site/es_ES/Login-Submit"...>
并且会出现问题。