Hi Nags, as usual thanks for your answer & your patience with me. :)
On Fri, 2012-01-06 at 18:00 -0800, Nagappan Alagappan wrote: > How to get the object index: > getobjectproperty('window name', 'object name', 'obj_index') > example: > getobjectproperty('*gedit', 'mnuQuit', 'obj_index') Wonderful, this makes it language-independent and reusable! > Use variable name in the script and import appropriate locale file > which has same variable name mapping with respective locale string. > example: > gedit_cs_CZ.py will have the following entries: > mnuFile = mnuSoubor > mnuQuit = mnuUkonĨit If I get it right this would require parsing all the translations first that I plan to cover by extracting translations and add them into the mapping file, plus it is error-prone as translations are a moving target (work in progress), especially before a major release. That's why I'd love to access all objects by using their index in my script, however it seems that some objects simply don't have an index, as the LDTP Tutorial PDF states on page 13 ("Different ways of representing window name", item 7): "Window type and index (only if window does not have any accessible title, Ex: 'dlg0')". I get an error when I try to get the index of the "gedit Preferences" dialog when going to Edit > Preferences with this code: # -*- coding: utf-8 -*- #!/usr/bin/python from ldtp import * launchapp('gedit', lang = 'en_US.utf8') if waittillguiexist ('*gedit') == 0: raise LdtpExecutionError ('Application window does not exist') print "Application window exists." selectmenuitem ('*gedit', 'mnu#32') if waittillguiexist ('dlggeditPreferences') == 0: raise LdtpExecutionError ('Dialog window does not exist') time.sleep (3) OBJECTINDEX = getobjectproperty('*gedit', 'dlggeditPreferences', 'obj_index') print "obj_index for dlggeditPreferences is: " print OBJECTINDEX The error is: Traceback (most recent call last): File "index.py", line 12, in <module> OBJECTINDEX = getobjectproperty('*gedit', 'dlggeditPreferences', 'obj_index') File "/usr/lib/python2.7/site-packages/ldtp/client.py", line 65, in __call__ return self.__send(self.__name, args) File "/usr/lib/python2.7/xmlrpclib.py", line 1575, in __request verbose=self.__verbose File "/usr/lib/python2.7/site-packages/ldtp/client.py", line 180, in request raise LdtpExecutionError(e.faultString.encode('utf-8')) ldtp.client_exception.LdtpExecutionError: Unknown property "obj_index" in dlggeditPreferences So I guess there is no way to make my script completely avoid using any language-dependent object names and only indexes? Sigh. :-/ andre -- mailto:ak...@gmx.net | failed http://blogs.gnome.org/aklapper _______________________________________________ LDTP-dev mailing list LDTP-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/ldtp-dev