我正在尝试使用 Selenium 登录网页,但是当我输入相关的电子邮件地址并尝试单击继续时,我得到了没有此类元素的异常。
driver = webdriver.Safari()
driver.get('https://manage.statuspage.io/login')
email = driver.find_element_by_id('email')
email.clear()
email.send_keys('XXX')
driver.find_element_by_id("login-btn").click()
driver.find_element_by_id("login-submit").click()
正如你所看到的,我正在通过 id 'login-submit' 搜索这个继续按钮,但它说它不存在。任何帮助都会很棒!
点击后
driver.find_element_by_id("login-btn").click()
它会将您带到显示login-submit
元素的另一个页面。
但是您尝试在单击上一页上的元素后立即单击此元素,而新页面仍未加载。
在访问它之前,您应该添加一个等待以等待该元素出现在第二个页面上。
这应该有效:
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
driver = webdriver.Safari()
wait = WebDriverWait(driver, 20)
driver.get('https://manage.statuspage.io/login')
email = wait.until(EC.visibility_of_element_located((By.ID, "email")))
email.clear()
email.send_keys('XXX')
wait.until(EC.visibility_of_element_located((By.ID, "login-btn"))).click()
wait.until(EC.visibility_of_element_located((By.ID, "login-submit"))).click()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句