Re: dogtail recorder is looking better



Bill wrote:
The code we checked out from CVS this afternoon is working better.
Still some keyboard navigation problems though, and even mouse-click
navigation fails in some cases.
Using the alt-F key in gedit doesn't result in error messages now but
it still doesn't work. Also we are not able to select files to open from a script.

Do me a favor please. Run gedit and record a typical session where you
open a file, edit it, save it, and close it, all with the mouse.
Then play it back. If you have a number of files can you select and open any but
the first one?
Ugh. It seems that table doesn't implement the AccessibleComponent interface, which is what provides us with screen coordinates (x,y,w,h) so that we can actually detect which widget was clicked. That is a bug in gedit.

Dogtail does provide an API to select and deselect nodes in a table, but it appears this table also doesn't implement the AccessibleSelection interface. That is also a gedit bug.

In summary, we can't do what the app doesn't let us. So we're very slowly getting app maintainers to fix accessibility problems to address that.

Then try the same session with keyboard input only.

This works pretty well, with one caveat: after pressing <alt>f (which works here provided you make sure gedit actually has keyboard focus when that gets executed), Down and Enter, the open files dialog pops up. But since it takes a few seconds, it misses the next keystroke: I pressed Down 4 times, then Enter, to get into my Desktop folder; it missed one of the Down presses and went into ~/bin.

That one can't be fixed in a reliable way without the script author providing more information to dogtail, e.g. "wait until this table has X amount of items before continuing" - and I've never been able to come up with a sensible way to let that happen. In practice what usually happens is that a sleep() will be put into the script at whichever point the slowdown occurs. From what I understand about similar tools on other platforms, you generally have to tweak your recorded scripts a bit before they work as expected.

Zack



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]