[LDTP-Dev] Launch application in specific locale?

Nagappan Alagappan nagappan at gmail.com
Thu Jan 12 13:26:46 PST 2012


Hi Andre,

On Thu, Jan 12, 2012 at 1:05 PM, Andre Klapper <ak-47 at 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-47 at gmx.net | failed
> http://blogs.gnome.org/aklapper
>
> _______________________________________________
> LDTP-dev mailing list
> LDTP-dev at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/ldtp-dev/attachments/20120112/cf1f2a9f/attachment.htm>


More information about the LDTP-dev mailing list