找不到任何元素 Selenium Python



我正在尝试使用Selenium登录网站。我的主要问题是,我似乎找不到任何与登录相关的元素

我只是不断收到NoSuchElementException错误。我试过研究,但没能找到原因。

这是我迄今为止的代码

from selenium import webdriver
driver = webdriver.Chrome("C:/path/to/chromedriver.exe")
driver.get('https://sports.dafabet.com/')
username = driver.find_element_by_id("userName")
password = driver.find_element_by_id("password")
login_button = driver.find_element_by_id("loginBtnForm")

试用ExplicitWaits

代码:

driver.maximize_window()
wait = WebDriverWait(driver, 10)
driver.get("https://www.dafabet.com/en/sports")
wait.until(EC.element_to_be_clickable((By.ID, "LoginForm_username"))).send_keys('your username')
wait.until(EC.element_to_be_clickable((By.ID, "LoginForm_password"))).send_keys('your password')
wait.until(EC.element_to_be_clickable((By.ID, "LoginForm_submit"))).click()

进口:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

阅读更多关于ExplicitWait这里-官方文档

在获取这些元素之前,您缺少一个延迟/等待
最简单的方法是在之间放入一些硬编码睡眠

driver.get('https://sports.dafabet.com/')

username = driver.find_element_by_id("userName")

像这样:

driver.get('https://sports.dafabet.com/')
time.sleep(10)
username = driver.find_element_by_id("userName")

虽然更好的做法是使用显式等待,比如:

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
wait = WebDriverWait(driver, 30)
username = wait.until(EC.visibility_of_element_located((By.ID, 'userName')))

最新更新