You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium操作Google Teachable Machine遇NoSuchElementException求助

解决Selenium操作Google Teachable Machine时的NoSuchElementException问题

核心问题分析

你之前添加的iframe切换逻辑是错误的——页面根本不存在iframe,控制台返回空集合已经证明了这一点,这会导致Selenium脱离正确的页面上下文,引发新的定位错误。而最初的.add-classes元素定位失败,是因为页面动态渲染延迟,普通的元素查找在元素未加载完成时执行。

解决方案步骤

  • 移除iframe切换代码:直接删除所有涉及switch_to.frame的代码,因为页面没有嵌套iframe。
  • 改用显式等待:通过WebDriverWait等待元素满足可点击/可见状态,替代固定时长的sleep,更适配动态页面。
  • 直接操作文件上传input:Teachable Machine的上传按钮是触发隐藏的文件输入框,定位这个<input>元素并调用send_keys,比点击可视化按钮更稳定。

修正后的完整代码

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
import os

# 初始化浏览器
driver = webdriver.Chrome()
driver.get("https://teachablemachine.withgoogle.com/train/image")
driver.maximize_window()

try:
    # 等待"添加类别"按钮可点击并点击
    add_classes_btn = WebDriverWait(driver, 20).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, ".add-classes"))
    )
    add_classes_btn.click()

    # 假设要上传到第一个类别,先点击该类别的上传区域
    upload_area = WebDriverWait(driver, 20).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, ".class-container:nth-child(1) .upload-btn"))
    )
    upload_area.click()

    # 定位隐藏的文件上传input元素
    file_input = WebDriverWait(driver, 20).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, 'input[type="file"]'))
    )

    # 批量上传图片:传入图片文件路径列表
    image_paths = [
        os.path.abspath("path/to/image1.jpg"),
        os.path.abspath("path/to/image2.jpg"),
        # 更多图片路径...
    ]
    # 将路径用换行符拼接,send_keys支持批量上传
    file_input.send_keys("\n".join(image_paths))

finally:
    # 操作完成后可选择关闭浏览器,或者留着查看结果
    # driver.quit()
    pass

额外注意事项

  • 确保ChromeDriver版本与本地Chrome浏览器版本匹配,版本不兼容也可能导致元素定位异常。
  • 如果需要上传到多个类别,重复执行"点击类别上传区域→定位input→send_keys"的逻辑即可。
  • 若遇到元素被遮挡的情况,可尝试用driver.execute_script强制点击元素,比如:
    driver.execute_script("arguments[0].click();", add_classes_btn)
    

内容的提问来源于stack exchange,提问作者조승주

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 07:25:18