所以我尝试登录https://www.adidas.com/us/myaccount-create-or-login我尝试过xpath,Name和ID。所以我问了一些朋友,一个人能够使用ID登录,但我仍然无法登录。
这是我的代码:
from selenium import webdriver
import time
import colorama
from colorama import Fore, Back, Style
import datetime
def getCurrentTime():
return time.strftime("[%H:%M:%S]")
def ACO(getCurrentTime):
print("{} Configuration Loaded".format(getCurrentTime()))
driver = webdriver.Chrome()
driver.get("https://www.adidas.com/us/myaccount-create-or-login")
time.sleep(5)
driver.find_element_by_id("username").send_keys("test123")
driver.find_element_by_id("password").send_keys("test123")
driver.find_element_by_xpath("""//*[@id="signinSubmit"]""").click()
time.sleep(500)
ACO(getCurrentTime)
答案 0 :(得分:1)
登录表单位于iframe 中的。要在此表单上找到元素,您必须切换到iframe的上下文:
driver.switch_to.frame("loginaccountframe")
driver.find_element_by_id("username").send_keys("test123")
driver.find_element_by_id("password").send_keys("test123")
driver.find_element_by_id("signinSubmit").click()
作为旁注,尽量避免使用硬编码的time.sleep()
超时 - 它们非常不可靠 - 而是通过WebDriverWait
明确Explicit Waits。