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

求助:使用Python+Selenium实现SharePoint上传窗口自动输入文件路径

问题:SharePoint文件上传时无法自动输入文件路径

各位团队成员:
我开发了一个需实现文件上传功能的程序,点击「Upload」按钮后进入上传窗口,但在此步骤遇到问题,无法自动输入文件路径,恳请各位提供相关实现示例。

我的代码实现:

driver1 = webdriver.Chrome(executable_path= r'C:\Users\Ast1\Desktop\chromedriver.exe')
Sharepoint ="https://ast.sharepoint.com/sites/ExtTeam_GPS/Shared%20Documents/Forms/AllItems.aspx?viewid=3638f543%2D486c%2D4bca%2D85a7%2D8d86da0a8eb5&id=%2Fsites%2FExtTeam%5FNO%2FShared%20Documents%2FPowerBI%20Datasets"
driverLink= Sharepoint
driver1.get(driverLink)
Em = WebDriverWait(driver1,120).until(EC.presence_of_element_located((By.ID,'i0116')))
Em.send_keys("astemp1@ast.com")
elm =WebDriverWait(driver1,120).until(EC.presence_of_element_located((By.ID,'idSIButton9')))
elm.click()
driver1.implicitly_wait(100)
#elm1 = WebDriverWait(driver1,100).until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT,'Upload')))
elm2 = driver1.find_element_by_xpath('//*[@id="appRoot"]/div[1]/div[2]/div[3]/div/div[2]/div[2]/div[2]/div[1]/div/div/div/div/div/div/div[1]/div[2]/button')
elm2.click()
driver1.implicitly_wait(20)
elm3 = driver1.find_element_by_name('Files')
elm3.click()
driver1.implicitly_wait(20)
#以下代码无法正常运行
Elm4 = driver1.find_element(By.ID('File name'))
Elm4.send_keys(r'C:\A1\AA1\M1\Input\TblGpsNew.xlsx')

问题分析与解决方案:

你遇到的核心问题是试图操作系统原生的文件选择对话框——这类弹窗属于系统级控件,不在浏览器DOM范围内,Selenium根本无法直接控制它。另外你的代码里还有个语法错误:By.ID('File name')应该写成(By.ID, 'File name'),但就算修正了这个,也解决不了原生弹窗的本质问题。

正确的文件上传逻辑是直接找到页面中负责文件上传的<input type="file">元素(通常这个元素是隐藏状态,不需要手动点击),直接调用send_keys()方法传入文件的绝对路径,就能触发上传流程,完全绕开系统的文件选择对话框。

修改后的代码片段如下:

# 点击Upload按钮后,替换你原来从elm3开始的代码
driver1.implicitly_wait(20)
# 等待并定位到type为file的上传控件(用CSS选择器更简洁)
file_upload_input = WebDriverWait(driver1, 20).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, 'input[type="file"]'))
)
# 直接传入文件路径,无需打开系统对话框
file_upload_input.send_keys(r'C:\A1\AA1\M1\Input\TblGpsNew.xlsx')

额外提示:

  • 尽量避免混用implicitly_wait和WebDriverWait,推荐统一使用WebDriverWait(显式等待),等待逻辑更清晰,还能减少不必要的等待时间。
  • 你的SharePoint URL里似乎存在路径不一致的问题(ExtTeam_GPS和ExtTeam_NO),如果后续访问异常可以检查一下这个URL是否正确。

内容的提问来源于stack exchange,提问作者Narendra Suryawanshi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 11:37:49