I just installed pywinauto-0.4.2 for Python 2.7.8 (on a 64-bit Windows 7 machine). I tried the example given in pywinauto
Source code for the SaveFromFirefox.py program (specified in the above URL):
from pywinauto.application import Application
import sys
import time
import os.path
if len(sys.argv) < 2:
print "please specify a web address to download"
sys.exit()
web_addresss = sys.argv[1]
if len(sys.argv) > 2:
outputfilename = sys.argv[2]
else:
outputfilename = web_addresss
outputfilename = outputfilename.replace('/', '')
outputfilename = outputfilename.replace('\\', '')
outputfilename = outputfilename.replace(':', '')
app = Application().start_(
r"c:\program files\Mozilla Firefox\Firefox.exe %s"% web_addresss)
time.sleep(4)
if app.windows_():
mozilla = app.window_(title_re = ".*Mozilla Firefox")
else:
app = Application().connect_(title_re = ".*Mozilla Firefox")
mozilla = app.window_(title_re = ".*Mozilla Firefox")
print "No Menu in FireFox:", mozilla.MenuItems()
mozilla.TypeKeys("%FA")
app.SaveAs.FileNameEdit.SetEditText(outputfilename)
app.SaveAs.Save.CloseClick()
if app.SaveAs.Yes.Exists():
app.SaveAs.Yes.CloseClick()
print "saved:", outputfilename
mozilla.TypeKeys("%FC")
When I try to execute the file on the command line, it opens the Firefox browser and then opens the Save As dialog box, but does not click the Save button.
Rather, this leads to the following error message:
C:\Users\arun_m\Desktop>python2 SaveFromFirefox.py www.google.com
No Menu in FireFox: []
Traceback (most recent call last):
File "SaveFromFirefox.py", line 51, in <module>
app.SaveAs.FileNameEdit.SetEditText(outputfilename)
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 229, in __getattr__
ctrls = _resolve_control(self.criteria)
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 795, in _resolve_control
raise e.original_exception
pywinauto.findbestmatch.MatchError: Could not find 'FileNameEdit' in '['', u'ShellView', u'Address: D:\\My_Dox_backup\\Work\\Automation Factory\\Selenium\\Sikuli', u'DUIViewWndClas
sName', 'Toolbar4', u'ShellViewSHELLDLL_DefView', u'Namespace Tree Control', u'Breadcrumb Parent', u'Address Band Root', u'Tree ViewTreeView', u'UniversalSearchBand', u'SearchEditB
oxWrapperClass', 'ComboBox2', 'Progress', 'ComboBox0', 'ComboBox1', 'Toolbar2', u'CtrlNotifySink', u'ScrollBar', '20', '21', '22', '23', u'FloatNotifySink0', 'ComboBox', u'FloatNot
ifySink2', u'TravelBand', u'WorkerW', '1', '0', '3', '2', '5', '4', '7', '6', u'NamespaceTreeControl', '8', '12', 'TreeView', 'Toolbar1', u'CancelButton', 'Toolbar', '11', u'Search
Box', 'ReBar', 'Edit', 'Button', u'CtrlNotifySink0', u'CtrlNotifySink1', u'CtrlNotifySink2', 'Toolbar3', '9', 'Button1', 'Button0', u'FloatNotifySink', u'DirectUIHWND3', u'&SaveBu
tton', u'DirectUIHWND', '10', '13', u'CancelScrollBar', '15', '14', '17', 'Button2', '19', '18', u'Tree View', '16', u'SHELLDLL_DefView', u'Namespace Tree ControlNamespaceTreeContr
ol', u'&Save', u'Address: D:\\My_Dox_backup\\Work\\Automation Factory\\Selenium\\SikuliToolbar', 'Toolbar0', u'FloatNotifySink1', u'DirectUIHWND1', u'DirectUIHWND0', u'Cancel', u'D
irectUIHWND2']'
What is going wrong?