Hi Andre, On Thu, Jan 12, 2012 at 1:05 PM, Andre Klapper <ak...@gmx.net> wrote:
> 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. :-/ > As of now, we don't have option for obj_index for all the windows. I mean, you can access: getobjectproperty('dlggeditPreferences', 'dlggeditPreferences', 'obj_index') but the result will be just based on the current window. Maybe will try to implement it based on the current application. Thanks Nagappan > > 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 > -- Linux Desktop (GUI Application) Testing Project - http://ldtp.freedesktop.org http://nagappanal.blogspot.com
_______________________________________________ LDTP-dev mailing list LDTP-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/ldtp-dev