2011-08-10 10 views
0

私はPerl/Tkで書かれたPOSアプリケーションを持っています。私はX11 :: GUITestを使って自動テストを行い、ボタンや他のウィジェット(通常はタッチスクリーン駆動)にバインドされたホットキーを使ってアプリケーションを起動します。しかし、X11 :: GUITestは画面からテキストを "読み込む"方法がないので、一時ファイルを書き込むだけでなく画面にデータを書き込むようにアプリケーションを拡張することに頼っています。テストスクリプトは、GUIではなく一時ファイルを調べます。しかし、私はX11 :: GUITestを拡張したり、X11 GUIからテキスト文字列を掻き取ることができる新しいCPANモジュールを作ったりしたいと思います。私は、グラフィックスからテキストへの変換の後ではない。 Xウィンドウシステム、ラベルテキストなどの深さのどこかがテキスト文字列として格納され、パイプラインの後半(?)にビットマップ形式にレンダリングされるという私の(かすかな)理解です。X11 GUIからテキストを抽出しますか?

誰でもこれを行う方法や、どこから始めるべきかについての指針はありますか?

ええ、私はより良いMVC分離に慣れていて、実際にはGUIレベルでテストするのではなく、そのすぐ下でテストすべきであることを知っています。現実が途中にあり、それはそれが何であるかです!

答えて

1

プログラムlistresは、ラベルテキストを含むウィジェット内のリソースをリストしており、テキスト入力ボックスの内容と思われます。必要なものを抽出したり、ソースを見て、それがどのように行われているかを確認したりする必要があるかもしれません。

+0

Thanx。 listresは便利な小さなツールです。私は以前それを見たことがない。しかし、私のアプリからのテキスト文字列は表示されません。これはおそらく、私は別々のリソースとして各文字列を持っていないためです。 – Spook

+0

@Spook、ああ、あなたが何らかのツールキットを使っていると思っていました。 Perl/Tkはリソースを使用していないと思います。 – lhf

1

これを行う最善の方法は、ATK(GTKアプリケーションで使用される)のようなアクセシビリティフレームワークでプログラムを動作させ、それを使ってスクリーンリーダーがテキスト読み上げに必要な文字列を照会することです翻訳。これは、Linux Desktop Testing Projectdogtailのテストフレームワークによって取られたアプローチです。あなたは、既存のよくテストされたコードを使用し、アプリケーションを障害のあるユーザーによってより使いやすくするというボーナスを得ます(米国の障害者法などの法律や他の多くの国でも同様の法律によって要求される場合があります)。

アプリケーションがlibXft2のような現代のフォントフレームワークを使用している場合、これらの文字列はクライアントアプリケーションでのみ提供され、Xサーバーではなく、ピックスマップへの変換がクライアントで行われるため、

レガシーX11 APIの場合でも、Xサーバはテキストからビットマップへの変換が完了すると文字列を保存しませんが、そのような場合にそれらを傍受するのには不十分です。

+1

Thanx。 Dogtailは素敵な小さなツールですが、非常に便利です。私は散歩のために撮影し、いくつかのスクリプトを作成し、gcalctoolやgeditなどを駆動することができます。しかし、私自身のアプリはAT-SPIブラウザには表示されませんし、ドッグテールでドライブすることもできません。とにかくそれほど悪いことではない、私のアプリケーションをアクセス可能にするためにもう少し作業があるようだ。今私は次のステップを知っている... – Spook

関連する問題