Ввод данных в адресную строку windows 10 (pywinauto)

pywinauto
python
Теги: #<Tag:0x00007fedb91f0c80> #<Tag:0x00007fedb91f0b40>

(Максим Неверный) #1

Всем доброго дня! Стоит задача автоматизировать процесс загрузки документов на сайт. Средствами selenium тест адекватно доходит до нужного раздела, но когда управление передаётся pywinauto - начинаются вопросы. Есть стандартное окно диалога для загрузки файлов:


Необходимо ввести в сроку адреса название + полный адрес файла для загрузки.
Есть код:

app.Dialog.Toolbar3.Click()                 
app.Dialog.Toolbar3.TypeKeys('xxx', with_spaces=True)

Он не работает. Точнее работает не полностью. Событие Click происходит, но когда пытаюсь ввести текст - результат нулевой. Для определения элементов окна использовал AutoIt win Info.

Если у кого-то был опыт работы с pywinauto, прошу подсказать, что я делаю не так.
Спасибо!


(rmerkushin) #2

А через send_keys без pywinauto не пробовали?

element = driver.find_element_by_xpath(xpath)
element.send_keys(file_path)

з.ы. xpath до input’а формы


(Максим Неверный) #3

не думаю, что это поможет, т.к. на самом сайте нет формы для ввода пути до файла. Есть кнопка, “Загрузить документ”, после нажатия не которую выводится окно “Открытие” (см. скрин).
p.s. уже близок к решению.

app.Dialog.Edit0.TypeKeys(r'C:\Users\xxx\Documents\Flash\xxx', with_spaces=False)
app.Dialog.Edit0.TypeKeys('{ENTER}')

просто поле для ввода выбрал другое - “Имя файла”.


(Eugene Tkachenko) #4

Я почти уверен на 100%, что форма для ввода пути к файлу появляется сразу после того, как вы нажимаете на “Загрузить документ”, встречал когда-то такое, что инпут появляется после какого-то экшена. Или это что-то вне моего понимания - должен быть элемент который принимает файл.