egorandrew
Март 31, 2017 10:14:43
Добрый день. Занимаюсь автоматизацией процесса тестирования selenium+webdriver на питоне.
При нажатии на кнопку “Обзор” я должен выбрать необходимый документ
http://prntscr.com/eqmwdz .
Как взаимодействовать с данным окном? Как данный процесс можно автоматизировать?
Если не совсем понятно, могу дополнить, если будут вопросы.
PEHDOM
Апрель 1, 2017 10:44:55
Вам нужно автоматизировать взаимодействие с оконом или ввод данных. Что значит “взаимодействовать” в вашем понимании? как вы вызываете это окно?
egorandrew
Апрель 2, 2017 08:50:42
Данное окно “Выгрузка файла” вызывается кнопкой “Обзор”. Мне нужно автоматизировать выбор файла.
PEHDOM
Апрель 2, 2017 09:13:39
Уточнение, а поле “путь к файлу” редактируемое? МБ проще сразу туда путь вставлять?
Окно что на скриншоте это стандартный OpenFileDialog типа такого
https://msdn.microsoft.com/en-us/library/microsoft.win32.openfiledialog%28v=vs.110%29.aspxЕсли всеже поле “путь к файлу” нередактируемое, то вам нужно с помощью win32api или сторонней утилиты типа Autoit получить хендл окна, и дальше пытаться работать с ним.
egorandrew
Апрель 2, 2017 10:13:18
Да, поле путь к файлу “readonly”. Если даже убрать с html страницы данную опцию (через исходный код страницы) и затем вручную ввести путь к файлу, то выйдет сообщение что не выбран файл
PEHDOM
Апрель 3, 2017 14:14:13
Тогда Вам нужно сначала инчтрумент типа WinSpy++. Насмотря на название, вполне штатная тулза, идет в комплекте с МСВижуалСтудио. С помощью нее можно определить класс окна, и его элементы, дальше можете брать win32gui или pywinauto получать хендл окна, добираться до нужного поля и вставлять в него нужный вам текст.
egorandrew
Апрель 12, 2017 18:19:15
вопрос решен, спасибо за советы:
from pywinauto.application import Application #импорт модуля
app = Application().Connect(title='Выгрузка файла', class_name='#32770') # с помощью Spy++ определил форму
window = app.Dialog
edit = window.Edit
edit.Click() edit.TypeKeys(“C:\\Users\\Roseltort62\\Desktop\\99\\104784003_fcsNotificationEF_0334100000717000009.xml”) # путь до файла
time.sleep(3)
button = window.Открыть
button.Click()
egorandrew
Май 18, 2017 10:49:23
всем привет еще раз, возвращаюсь к этой проблеме еще раз. Для IE данный вопрос остался нерешенным, браузер IE, который запускает webdriver той же версии что и на компьютере, но кнопка “Обзор” не активна и не нажимается, программа видит этот элемент (так как не возникает исключение не найден элемент). Как быть в IE?
PEHDOM
Май 18, 2017 13:56:29
egorandrew
но кнопка “Обзор” не активна и не нажимается
конпка не активна для пользоваетеля? или только для скрипта? мышкой она нажимается?
egorandrew
Май 19, 2017 09:17:30
мышкой также не нажимается. Скрипт ее видит , скорее всего пытается нажать