Я новичок в Python, поэтому не могу точно сказать, где проблема: в PyWinAuto или в моих знаниях Python.
Я запускаю следующий скрипт Windows (Python 3.5.2):
#!/usr/bin/env python3
import os
import sys
import pywinauto
def testLicenseForm():
app = pywinauto.Application().Start('Calc.exe')
try:
LicenseForm = app['Nonsense name']
LicenseForm.OK.Click()
# raise pywinauto.findbestmatch.MatchError
# raise pywinauto.timings.TimeoutError
except (pywinauto.timings.TimeoutError, pywinauto.findbestmatch.MatchError) as e:
f = open('R:\Temp\diagnostic\log.errors', 'w')
f.write('Exception raised')
sys.exit('Error in script'.format(__file__))
if __name__ == '__main__':
testLicenseForm()
Проблема в том, что log.errors создается, но пустой. Если я изменю код следующим образом:
# LicenseForm.OK.Click()
raise pywinauto.findbestmatch.MatchError
файл log.errors создается и содержит в себе ожидаемый текст. Не уверен, в чем проблема. Как изменить скрипт для записи некоторой информации в файл, если pywinauto выдает исключение.