当没有输入类型但有 HTML 中的按钮类型时,如何使用 python selenium-webdriver 上传文件?

Str*_*zik 2 python selenium selenium-webdriver

当没有输入类型但有 HTML 中的按钮类型时,如何使用 python selenium-webdriver 上传文件?

我正在尝试使用 Selenium 将文件上传到网页,但 HTML 类型是一个按钮而不是输入文件。

下面是 HTML 代码

在此输入图像描述

按钮看起来像这样

在此输入图像描述

我的代码

browser.find_element_by_class_name("ng-scope").send_keys('C:\\Users\\Desktop\\test.png')
Run Code Online (Sandbox Code Playgroud)

但是在我运行代码后,文件没有上传。

请告诉我哪里出错了?

预先感谢-M

Ser*_*ers 5

有一个隐藏的输入type=file。要使用 Selenium 上传文件,您必须将密钥发送到input[type=file]

browser.find_element_by_css_selector(".file-upload-input input[type=file]").send_keys('C:\\Users\\Desktop\\test.png')
Run Code Online (Sandbox Code Playgroud)

用于WebDriverWait等待元素出现在 DOM 中:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# ...

wait = WebDriverWait(driver, 5)

wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".file-upload-input input[type=file]"))).send_keys('C:\\Users\\Desktop\\test.png')
Run Code Online (Sandbox Code Playgroud)