首页 > 解决方案 > 未找到 Python 硒元素

问题描述

当未找到元素时应打印:未找到,但出现错误:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//input[@name='q']"}

这是我的脚本,元素“搜索”不存在

import time
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"C:\Users\SAMSUNG\chromedriver.exe")
driver.get('https://facebook.com')
search = driver.find_element_by_xpath("//input[@name='q']")
time.sleep(15)
if search:
    time.sleep(15)
    print('found')
    driver.find_element_by_xpath("//input[@name='q']").send_keys('test')
else:
    print('not found')
    pass

不起作用,因为我们不能对元素执行 len(我们只能对带有 s 的元素执行此操作)

标签: pythonselenium

解决方案


你不需要len,也不需要else块。您可以简单地检查是否loginform为真/假,即如果loginform成功识别,那么它将返回真并执行该if块。

更新为使用 try-except 结构。

from selenium.common.exceptions import NoSuchElementException

try:
    time.sleep(3)
    search = driver.find_element_by_xpath("//input[@name='q']")
    print('found')
    time.sleep(3)
    search.send_keys('test')
except NoSuchElementException: 
    print('not found')
    pass

推荐阅读