我正在尝试在https://www.footish.se/sneakers/fila-wmns-disruptor-run-1010866-60m
我已经进入了结账页面,但无法在"电子邮件"输入字段中输入我的电子邮件。
代码看起来像这个
email = driver.find_element_by_xpath("/html/body/div/span/div/div/div/div[1]/div/div/div[1]/div/form/div[2]/div[1]/div/label/div/div/input")
email.send_keys("test@email.com")
已经实现了某种功能来等待所需的元素,直到它们被加载。一个例子->
while not find:
try:
find = driver.find_element_by_xpath("/html/body/form/div[5]/div/div[4]/div[1]/div[1]/div[2]/div[1]/div[10]/div[1]/h2")
print("Loaded info")
except:
continue
我得到的错误是这样的。selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div/span/div/div/div/div[1]/div/div/div[1]/div/form/div[2]/div[1]/div/label/div/div/input"}
我该如何解决这个问题?提前感谢。。。。
看起来email
字段是一个动态生成的元素,因此当最初进行检查时,它还不存在。您可以尝试使用until
方法等待特定的时间,看看它是否确实应用于DOM
。
样本代码
driver = webdriver.Chrome()
driver.get("url")
try:
element = WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.ID, "myDynamicElement")) # set your id here
)
finally:
driver.quit()
如果不起作用,请进行更新。这很可能与框架或错误路径问题有关。