morgon has asked for the wisdom of the Perl Monks concerning the following question:

Dear monks,

I am on Ubuntu (i.e. Gnome-Desktop) and would like to automate some tasks that would require script-controlled interaction with GUIs (i.e. start a program, select menues, press buttons etc).

I have looked around a bit (I don't know a lot about either Gtk or Gnome) and found 2 GUI-testing frameworks that may be usable for this task: dogtail (Python) and LDTP (with Python bindings).

Before I now spend time on these I would like to know if there are any Perl-tools that I could for such a task.

Many thanks!

Replies are listed 'Best First'.
Re: GUI automation with Gtk
by LanX (Saint) on Apr 08, 2010 at 16:48 UTC
      Thanks for your reply.

      The one thread you mention pertains to Windows, but X11::GUITest could be useful.

      However I am having problems using it - could you perhaps help me out?

      My problem is that it is easy to start an application and send it keystrokes but I cannot figure out how to e.g. drive the file-selection dialog of Acrobat Reader. All I can see are methods that send mouse-click events at specific coordinates which is not that useful because a) how do you figure out where to click and b) even if you could it would make some very brittle code that breaks as soon as a windows moves.

      The python-app I mentioned above does it a bit better because it hooks into the Accessability layer of GNOME to retrieve metadata about the dialog in question and allows you to refer to the widgets logically rather than by position.

      Does something like that exist for Perl or can anyone show me how to use X11::GUITest properly?

      Many thanks

        Sorry no idea how to analyze GTK, no practical experience.

        Specifying the window geometry should always control the position of the dialogs and if you need more security you can always clip from a snapshot and compare the images.

        But I doubt that automating acroread is always the best way to manipulate PDFs, if this is your intention...

        Cheers Rolf

Re: GUI automation with Gtk
by Illuminatus (Curate) on Apr 08, 2010 at 16:14 UTC
    Python?!? We don't need no stinking Python...

    Did you look on search.cpan.org? Bundle::Test includes modules for testing X, as well as http applications.

    fnord