Selenium 中没有 <input type="file"> 元素的文件上传

Posted

技术标签:

【中文标题】Selenium 中没有 <input type="file"> 元素的文件上传【英文标题】:file upload without <input type="file"> element in Selenium 【发布时间】:2021-11-26 00:45:55 【问题描述】:

我正在尝试自动化在remove.bg 上上传图片的过程,但我无法在检查元素中找到文件的输入字段。我知道通过使用 input 和 send_keys 我们可以自动执行此操作,但在这种情况下,当输入字段不可见时我应该怎么做。这是我到目前为止所尝试的。

from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium import webdriver

driver = webdriver.Firefox()
test = driver.get("https://www.remove.bg/upload")

input = driver.find_element_by_xpath('//input[@type="file"]')
print (input)

【问题讨论】:

为什么不使用他们的 API? @Leemosh 我这样做是一个有趣的项目来学习硒。我知道我可以使用 API,但我不喜欢在这个项目中使用它。 预期的行为应该是什么?从我所见,您只需要找到按钮的正确 XPath,然后继续。还是你期待别的? 在与 DOM 交互后,您可能会看到 元素出现(通过 javascript 注入)...(例如:单击“浏览”按钮后或拖动后/dropping.) 【参考方案1】:

由于该网站没有输入标签,请尝试以下xpath来单击上传按钮。

//button[contains(text(),'Upload Image')]

【讨论】:

以上是关于Selenium 中没有 <input type="file"> 元素的文件上传的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有“输入”元素的 Selenium WebDriver 中上传文件

使用python+selenium+phantomjs 怎么获取input里面的value值

Selenium2(java)selenium常用API 五

selenium+python - webdriver​模拟键盘ENTER没有效果

如何用selenium获取input输入框中的值

在 selenium 中定位 WebElements 的子节点