首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Selenium模块`NoSuchElementElement`异常[PYTHON]

Selenium模块`NoSuchElementElement`异常[PYTHON]
EN

Stack Overflow用户
提问于 2021-09-30 03:50:32
回答 2查看 44关注 0票数 0
代码语言:javascript
运行
复制
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: #loginUsername

我使用selenium模块来自动化一些网站的登录过程,当我执行这个程序时,当我尝试所有的find_element_by_*方法(按id,按类,按css选择器,按文本,按名称属性)时,它抛出NoSuchElementException,但是,我仍然收到这个错误,我不知道如何使这个程序没有错误,那么,有没有其他方法来调试程序呢?

EN

回答 2

Stack Overflow用户

发布于 2021-10-01 05:42:30

我没有足够的名气来发表评论,所以发布一个答案。我认为下面的任何一个原因都可能是原因。

  • 请检查chrome控制台中的元素xPathid等,以确保您使用的是正确的are

  • 您没有足够的时间让元素可访问。请使用explicit wait。

当您尝试执行操作时,

  • 可能是DOM上的present元素,但不是visible元素。

从错误消息中我可以看出你正在使用css选择器#loginUsername。我假设您没有给tag起应该是input#loginUsername的名字

票数 1
EN

Stack Overflow用户

发布于 2021-10-01 13:21:40

我知道你上面说的没有iframe。

在调用find_element(...)之前,请确保等待元素被加载并可用。

这样做:

代码语言:javascript
运行
复制
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')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69385879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档