クライアントがRCサーバーでセレンセッションを開始したが、セッションの途中でクライアントが「離れた」とします。ブラウザは開いたままになり、最終的には、そのようなセッションが十分にドロップされた後、コンピュータの速度を低下させるのに十分な「孤立した」ブラウザが存在します。
3 に答える
どのブラウザ インスタンスにも、保存できる session_id があります。Python の例:
>>> import selenium
>>> browser = selenium.selenium("localhost",4444, "*firefox", "http://www.santiycr.com.ar")
>>> browser.start()
>>> browser.sessionId
u'b4ad1f1d624e44d9af4200b26d7375cc'
したがって、テストの開始時にこれらの sessionId をファイルに保存し、テストの終了時にそれを削除すると、適切に終了しなかったテストのセッションを含むログ ファイルが作成されます。
cron、または通常の実行を使用して、そのファイルを読み取り、そこに保存されている sessionIds を反復処理して、次の URL を開くことができます (ブラウザーまたはプログラミング言語の http ライブラリを使用することもできます)。
http://localhost:4444/selenium-server/driver/?sessionId=THE-SESSION-ID&cmd=testComplete
これでうまくいくはずです。
編集: この質問は非常に興味深いので、ブログに解決策に関する投稿を作成しました。あなたがPythonの男なら、面白いと思うでしょう: http://www.santiycr.com.ar/djangosite/blog/posts/2009/aug/25/close-remaining-browsers-from-selenium-rc
>>> browser.stop()
Santi が上で説明したのと同じことを行います。
プロセスを強制終了することもできます。
ウィンドウズ:
taskkill /f /im iexplore.exe
taskkill /f /im firefox.exe
*ニックス:
for i in `ps -A | grep firefox | awk '{print $1}'`; do kill -9 $i; done