Открыть файл из диалогового окна файла Windows с помощью python автоматически

Я делаю автоматическое тестирование и получаю диалог с файлом. Я хочу выбрать файл из окна с открытым файлом с помощью python или selenium.

ПРИМЕЧАНИЕ. Диалог задается другой программой. Я не хочу создавать его с помощью Tkinter.

Окно выглядит так:

ЭТО ,

Как это сделать?

2 Solutions collect form web for “Открыть файл из диалогового окна файла Windows с помощью python автоматически”

Вы можете использовать библиотеку ctypes.

Рассмотрим этот код:

import ctypes EnumWindows = ctypes.windll.user32.EnumWindows EnumWindowsProc = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.POINTER(ctypes.c_int), ctypes.POINTER(ctypes.c_int)) GetWindowText = ctypes.windll.user32.GetWindowTextW GetWindowTextLength = ctypes.windll.user32.GetWindowTextLengthW SendMessage = ctypes.windll.user32.SendMessageW IsWindowVisible = ctypes.windll.user32.IsWindowVisible def foreach_window(hwnd, lParam): if IsWindowVisible(hwnd): length = GetWindowTextLength(hwnd) buff = ctypes.create_unicode_buffer(length + 1) GetWindowText(hwnd, buff, length + 1) if(buff.value == "Choose File to Upload"): #This is the window label SendMessage(hwnd, 0x0100, 0x09, 0x00000001 ) return True EnumWindows(EnumWindowsProc(foreach_window), 0) 

Вы производите цикл в каждом открытом окне, и вы посылаете ключевой штрих в тот, который вы выбираете.

Функция SendMessage получает 4 параметра: окно hendler ( hwnd ), физический ключ для отправки – WM_KEYDOWN (0x0100), код виртуальной клавиши tab ( 0x09 ) и repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag в 4-м аргументе.

Вы также можете отправить ключ, клавиша вниз, символы, возврат и т. Д. … Используйте документацию для справки.

Я использовал это как ссылку: Win32 Python: получение всех оконных заголовков

Удачи!

Рассмотрите возможность использования пакета pywinauto . Он имеет очень естественный синтаксис для автоматизации любых графических программ.

введите описание изображения здесь

Пример кода, открывающий файл в блокноте. Обратите внимание, что синтаксис зависит от языка (он использует видимые заголовки окон / контрольные метки в вашей графической программе):

 from pywinauto import application app = application.Application().start_('notepad.exe') app.Notepad.MenuSelect('File->Open') # app.[window title].[control name]... app.Open.Edit.SetText('filename.txt') app.Open.Open.Click() 
  • Изменение фона Windows с Python
  • Ошибка пульта управления принтером win32print на Python
  • Проблемы с новыми строками с использованием django на Windows Server во Франции
  • anaconda - переменная среды пути в окнах
  • Ошибка при обновлении pip: UnicodeDecodeError: кодек «utf-8» не может декодировать байт
  • Windows Tensorflow с Python не может читать данные mnist из-за разрешений
  • GIT bash для Windows: VIM не находит Python3
  • Установка Python GTK
  • Python - лучший язык программирования в мире.