【问题标题】:Avoid OS pop-up while uploading file with Selenium in Python在 Python 中使用 Selenium 上传文件时避免操作系统弹出窗口
【发布时间】:2021-08-29 07:06:36
【问题描述】:

我正在使用 selenium 上传文件。这是一个问题,因为上传按钮会出现一个文件资源管理器窗口,据我所知,该窗口无法自动化。如何自动化文件资源管理器或直接从 selenium 上传文件?它应该从要上传的路径中选择一个特定的文件。

非常感谢任何帮助。

这是我的代码:

upload1 = driver.find_element_by_xpath(upload1xpath)
upload1.send_keys('C:\Users\bodig\Downloads\image1.jpg')

【问题讨论】:

  • 这里有什么问题?您找不到将文件 xpath 发送给它的元素?
  • 问题是上传按钮打开一个文件浏览器窗口供用户选择文件。我需要它来自动选择一个文件
  • 你的 xpath upload1xpath 是否有属性 type = 'file'
  • 当然,这就是为什么你应该将文件路径发送到那里的其他元素来上传它,而不是点击上传按钮。你能分享那个页面的链接吗?
  • @cruisepandey 等待整个网站我不知道我检查一下

标签: python selenium file-upload


【解决方案1】:

在大多数情况下,要在不点击上传按钮的情况下上传文件,您可以将文件直接发送到该页面上的某个元素。
这将是带有 input 标签名称且属性 type='file' 的元素。不是用户点击的按钮,而是它附近的某个地方。
因此,您可以尝试使用以下命令查找该元素:

upload_input = driver.find_element_by_xpath('//input[@type="file"]')
upload.send_keys('C:\Users\bodig\Downloads\image1.jpg')

如果你更喜欢使用 css_selector,你可以使用这个:

upload_input = driver.find_element_css_selector('input[type="file"]')
upload.send_keys('C:\Users\bodig\Downloads\image1.jpg')

要在您的页面上查找特定元素,我必须查看网页

【讨论】:

  • 这是一个不完整/不正确的答案。使用 .send_keys() 上传文件需要带有属性 type='file' 的输入标签
  • @cruisepandey 你是对的,谢谢!我已经更正了我的答案
  • 所以我需要用 [@type="file"] 找到这个输入元素并将其用作 xpath 对吗?
  • 是的。你也可以用css_selector,我也加一下。
  • hmm,我找不到 type="file" 有什么办法可以找到吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-18
相关资源
最近更新 更多