В настоящее время я работаю над программой Selenium, для которой требуется открыть системный диалог выбора файлов. К сожалению, это невозможно обойти, просто отправив ключи к атрибуту веб-страницы, так как мне нужно выбрать кнопку без принятия файла, которая автоматически открывает диалог выбора файла.
Я считаю, что единственное решение - это отправить ключи через саму систему в селектор файлов. К сожалению, метод, который я сейчас использую (см. Ниже), требует, чтобы окно было активным для получения ключей.
Я использовал библиотеку pynput для отправки ключей на моей первой итерации. Документацию по pynput для клавиатур можно найти здесь: https://pynput.readthedocs.io/en/latest/keyboard.html
from pynput.keyboard import Key, Controller
import os, time
file = "723583.jpg" #this is a local directory file
keyboard = Controller()
keyboard.type(os.path.abspath(file))
time.sleep(5) #Please ignore the bad style of using these sleeps
keyboard.press(Key.enter) #They're just for testing
time.sleep(3)
keyboard.press(Key.enter)
time.sleep(3)
По другим вопросам Stackoverflow я нашел решения для компьютеров Windows (например, с использованием win32), хотя Мне не удалось найти что-либо для MacOS, которое я сейчас использую, или эквивалентного многоплатформенного решения. Кто-нибудь знает, как я могу отправлять ключи в фоновое приложение как таковое?