2011-02-02 16 views
2

私は本質的にセレンを使用してウェブサイトに表示されるフィールド値を監視し、その結果をファイルに記録するスイングアプリケーションを作成しました。私がスイングGUIを使用している理由は、ユーザーがJListに追加することで、監視したいフィールドを簡単に入力できるようにするためです。スイングGUIでセレンをコントロールする

すべてがうまくいきますが、「監視開始」(セレンスレッドを作成して実行します)のボタンをクリックすると、セレンスレッドが完全に引き継がれ、スイングGUIとのやりとりが許可されません。

セレンを停止するには、スイングGUIの[Stop Monitoring]ボタンが必要ですが、セレンの実行中にスイングGUIと対話できないため、これはできません。アドバンス

+0

私は似たようなことをしようとします。あなたはスイングGUIにセレン制御のFirefoxのインスタンスを統合する方法を私に指示を与えることができますか? – Alp

答えて

3

あなたのセレンコードはEDTやイベントディスパッチスレッド、ユーザーとの対話とGUIの絵画のためのスイングのメインスレッドをロックしている中

感謝。解決策は、SwingWorkerオブジェクトを使用するなどして、バックグラウンドスレッドでセレンコードを呼び出すことです。これを行う方法の詳細は、SwingWorkerチュートリアルで読むことができます:Concurrency in Swing

これを修正したら、「モニタリングの停止」JButtonを機能させることができます。

+0

うわー、ありがとう、すべてが今働く! :) – Steven

+0

よろしくお願いします!あなたのプロジェクトに最高の運があります! –

関連する問題