Как загрузить файл, используя python selenium-webdriver, когда нет типа ввода, но вместо этого он имеет тип кнопки в HTML? - PullRequest
0 голосов
/ 11 января 2020

Как загрузить файл с помощью python selenium-webdriver, когда нет типа ввода, но вместо этого он имеет тип кнопки в HTML?

Я пытаюсь загрузить файл на веб-страницу, используя Selenium, но тип HTML - это кнопка, а не входной файл.

Ниже приведен HTML Код

enter image description here

Кнопка выглядит следующим образом

enter image description here

Мой код

browser.find_element_by_class_name("ng-scope").send_keys('C:\\Users\\Desktop\\test.png')

Но после запуска кода файл не загружается.

Пожалуйста, сообщите, где я ошибаюсь?

Заранее спасибо -M

1 Ответ

1 голос
/ 11 января 2020

Есть скрытый ввод с 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')

. Используйте 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...