クライアントがRCサーバー上でセレンセッションを開始すると仮定しますが、セッションの途中でクライアントが「去った」とします。ブラウザは開いたままになり、最終的にはセッションが十分に落とされた後、コンピュータを減速させるのに十分な「孤立した」ブラウザが存在します。クライアントを失ったセレンRCサーバーでブラウザを閉じるには
答えて
すべてのブラウザインスタンスには、保存できるsession_idがあります。 Pythonの例:
だから、>>> import selenium
>>> browser = selenium.selenium("localhost",4444, "*firefox", "http://www.santiycr.com.ar")
>>> browser.start()
>>> browser.sessionId
u'b4ad1f1d624e44d9af4200b26d7375cc'
あなたがたときに、あなたのテストを開始するファイルでこれらのセッションIDを格納し、あなたのテストが終了したときに、それを削除した場合、あなたは結局なかったテストのセッションのログ・ファイルを持っています正しく。
今のcron、または任意の定期的な実行を使用して、あなたは(あなたのプログラミング言語のためのブラウザ、あるいはHTTPライブラリを使用して)、そのファイルを読み、それに保存されているsessionIdsを反復し、次のURLを開くことができます。
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
良い例Santi – AutomatedTester
Firefoxブラウザでは、プロファイルフォルダ名を確認してsessionidを見つけることができます。 UNIX系のシステムでは、 'ps ax | grep firefox-bin'は '12345のようなものを返しますか? 1:00/usr/lib/iceweasel/firefox-bin -profile/tmp/customProfileDir
また、単にプロセスを殺すことができます。
のWindows:
taskkill /f /im iexplore.exe
taskkill /f /im firefox.exe
の* nix:
for i in `ps -A | grep firefox | awk '{print $1}'`; do kill -9 $i; done
これは "ゾンビ"だけでなく、すべてのfirefoxを殺すでしょう。たとえば、同じマシン上で2つのrcを実行した場合(そうではない場合)、もう一方のRCで使用されていたffが終了する可能性があります。 – olamundo
>>> browser.stop()
上記のSantiと同じことは説明していますか?
- 1. セレンC#webdriverでブラウザを完全に閉じる
- 2. セレン、ffブラウザを開き、自動的に閉じる
- 3. セレンのみを開いてブラウザを直接閉じる
- 4. ブラウザで通知されたフラッシュプレイヤーページを閉じる/閉じる(as3)
- 5. カピバラでブラウザを閉じるには?
- 6. Asp.netでブラウザを閉じる
- 7. セレンrcのような任意のサーバー?
- 8. 接続が失われたり手動でテストが終了すると、セレンのスタンドアロンサーバーが閉じるブラウザ
- 9. ブラウザが閉じた後にPHP Cookieが失われる - ブラウザ=デフォルト設定
- 10. クライアント/サーバーとブラウザ/サーバー
- 11. 1つのクライアントが接続を失った後にTCPサーバーソケットが閉じられるのはなぜですか?
- 12. Liferayのブラウザを閉じるには?
- 13. クッキーに関する問題ブラウザを閉じた後にクッキーが失われる
- 14. wcfクライアントを閉じるには
- 15. ブラウザを閉じるときにApacheサーバーが要求を満たす方法
- 16. ブラウザを閉じたときにセッションを閉じてインデックスページにリダイレクトする方法
- 17. ブラウザのメインウィンドウを閉じる
- 18. ブラウザを開く/閉じる
- 19. NodeJS |パスポートを使ってブラウザを閉じた後にログインする方法は?
- 20. クライアントは、サーバーがソケットを閉じたことをどのように知っていますか
- 21. フォーカスを失ったメニューを閉じる、またはメニュー項目をクリックする
- 22. ブラウザを閉じた後にngCookiesを保持する方法は?
- 23. ブラウザを閉じるボタンを閉じるjQuery UIダイアログ
- 24. クライアントからURLを受け取った後にサーバー上でブラウザを開く
- 25. すべてのブラウザでセキュリティ警告のためにセレンのRCスクリプトを記録するには?
- 26. uwpブラウザをプログラムで閉じる
- 27. htmlsuiteを実行した後にセレンrcサーバーが終了しない
- 28. ラムダ関数でDAXクライアントを閉じる
- 29. 開かれたタブではないWebブラウザを閉じる
- 30. socket.io-mongodb-emitterで発信した後にmubsubクライアントを閉じる
質問が回答されたと思ったら、回答を受け入れる必要があります... – Santi
同様のメモで、既存のブラウザセッションを再利用できますか? :) – Nayn
@Nayn - はいできます! :)起動時にセレンRCを送信できる引数があります:-browserSessionReuse – olamundo