raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: #loginUsername我使用selenium模块来自动化一些网站的登录过程,当我执行这个程序时,当我尝试所有的find_element_by_*方法(按id,按类,按css选择器,按文本,按名称属性)时,它抛出NoSuchElementException,但是,我仍然收到这个错误,我不知道如何使这个程序没有错误,那么,有没有其他方法来调试程序呢?
发布于 2021-10-01 05:42:30
我没有足够的名气来发表评论,所以发布一个答案。我认为下面的任何一个原因都可能是原因。
xPath、id等,以确保您使用的是正确的areexplicit wait。当您尝试执行操作时,
present元素,但不是visible元素。从错误消息中我可以看出你正在使用css选择器#loginUsername。我假设您没有给tag起应该是input#loginUsername的名字
发布于 2021-10-01 13:21:40
我知道你上面说的没有iframe。
在调用find_element(...)之前,请确保等待元素被加载并可用。
这样做:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome("D:/chromedriver/94/chromedriver.exe")
driver.get("https://yourwebsite.com")
# use By.XPATH, By.CLASS_NAME etc. depending on the
# element you're referring to
WebDriverWait(driver, 60).until(EC.presence_of_element_located((By.ID, 'loginUsername')))
login = driver.find_element(By.ID, 'loginUsername')https://stackoverflow.com/questions/69385879
复制相似问题