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

如何用Python+GeckoDriver在无上传输入框的Ofoct网站实现Selenium文件上传?

解决ofoct音频转文本网站的Selenium文件上传问题

我来帮你搞定这个问题!这个网站的上传控件确实没有显示常规的可点击输入框,但其实它背后藏着一个隐藏的文件上传input元素,我们完全可以用Selenium直接定位它并完成上传,不用去折腾系统级的文件选择弹窗(那种方法不仅不稳定,还得额外依赖其他库)。

具体步骤和代码示例

  1. 环境准备:确保你的Selenium版本和GeckoDriver版本适配,Windows环境下如果没把GeckoDriver加入系统环境变量,初始化时要指定它的绝对路径。

  2. 定位隐藏的input元素:打开网站后按F12调出开发者工具,搜索input[type="file"]就能找到这个隐藏的上传控件。我们可以用XPath直接定位它。

  3. 直接上传文件:对这个隐藏元素调用send_keys()方法,传入本地音频文件的绝对路径即可,网站会自动触发上传流程。

以下是完整的Python代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# 初始化GeckoDriver,若未配置环境变量,需指定executable_path
driver = webdriver.Firefox()  # 示例:webdriver.Firefox(executable_path=r'C:\Tools\geckodriver.exe')

# 打开目标网站
driver.get("https://www.ofoct.com/audio-converter/audio-to-text.html")
driver.maximize_window()
time.sleep(2)  # 等待页面加载完成

# 定位隐藏的文件上传input元素
upload_input = driver.find_element(By.XPATH, "//input[@type='file']")

# 替换成你本地音频文件的绝对路径
audio_file_path = r"C:\Users\你的用户名\Desktop\test_audio.mp3"
upload_input.send_keys(audio_file_path)

# 等待上传完成,可根据页面加载状态调整等待时间或使用显式等待
time.sleep(5)

# 后续可添加选择语言、点击转换按钮等操作
# ...

# 完成后关闭浏览器
# driver.quit()

补充说明

  • 为什么这种方法可行?:即使input元素被CSS设置为隐藏(比如display: none),Selenium依然可以对其执行send_keys操作,这是处理此类无可见上传框的标准且可靠的技巧。
  • 避免使用系统弹窗模拟:那种方法需要依赖pyautogui等库,而且受系统分辨率、弹窗位置影响,稳定性远不如直接操作隐藏input。
  • 如果定位失败:检查是否存在iframe,若上传控件在iframe内,需要先调用driver.switch_to.frame()切换到对应iframe后再定位元素。

内容的提问来源于stack exchange,提问作者Chi non salta Pavarotti è

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:36:10