假設客戶端在RC服務器上啓動硒會話,但在會話中間客戶端「離開」了。瀏覽器將保持打開狀態,最終,經過足夠的這種丟失的會話後,將有足夠的「孤兒」瀏覽器來減慢計算機的速度。如何在丟失客戶端的硒RC服務器上關閉瀏覽器
回答
任何瀏覽器實例都有一個您可以存儲的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並打開以下網址(使用瀏覽器,甚至是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
很好的例子Santi – AutomatedTester 2009-08-24 07:42:32
對於Firefox瀏覽器,你可以通過檢查profile文件夾名來找到sessionid。在unixlike系統上,'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,而不僅僅是「殭屍」。所以如果,例如,你在同一臺機器上運行兩個rc(並非不太可能),那麼最終可能會導致另一個RC使用的ff。 – olamundo 2010-09-25 15:48:38
>>> browser.stop()
與Santi同樣如上解釋。
- 1. 如何運行服務器端JavaScript在客戶端瀏覽器
- 2. 當客戶端瀏覽器關閉時中斷服務器端perl CGI腳本
- 3. 關閉瀏覽器會話丟失
- 4. 通知客戶端瀏覽器服務器上的更改
- 5. 如何從服務器刷新客戶端瀏覽器
- 6. 加密瀏覽器客戶端和服務器端代碼
- 7. PHP XAMPP日誌解析 - 服務器關閉/ connecton從瀏覽器丟失
- 8. 在硒瀏覽器中獲取瀏覽器關閉事件
- 9. 由於關閉套接字,服務器回覆客戶端消息失敗 - Java客戶端 - 服務器示例
- 10. 硒客戶端不關閉
- 11. 如何通知服務器關閉的TCP客戶端
- 12. 在Django/Python中瀏覽客戶端和服務器端文件?
- 13. 如何從NodeJS服務器端調用客戶端瀏覽器的javascript函數?
- 14. 客戶端/服務器證書身份驗證:IIS服務器端,黑莓本機瀏覽器客戶端
- 15. 服務器可以請求客戶端的瀏覽器?
- 16. 瀏覽器內的客戶端服務器?
- 17. 使用Android和瀏覽器客戶端的節點服務器
- 18. Python3基於WebSocket的服務器,客戶端關閉發送上
- 19. 在客戶端/服務器應用程序上使用java.awt.Desktop打開客戶端上的瀏覽器
- 20. 服務器端瀏覽器
- 21. 瀏覽器關閉時運行服務器端函數
- 22. XMLHttpRequest如何在瀏覽器上關閉?
- 23. 與iPad瀏覽器關閉的客戶端問題
- 24. 檢測客戶端的瀏覽器是否已關閉Cookie
- 25. 如何保持瀏覽器在客戶端機器上打開
- 26. 數據丟失 - 客戶機/服務器
- 27. 如何從客戶端(瀏覽器)向客戶端(瀏覽器)發送客戶端的SSL/TLS證書
- 28. 如何使服務器端域模型可用於客戶端Web瀏覽器?
- 29. 刷新瀏覽器客戶端沒有擊中服務器
- 30. VNC服務器和vnc瀏覽器客戶端
一旦你認爲你的問題已被回答,你必須接受答案... – Santi 2009-08-25 20:24:44
在類似的筆記中,我可以重複使用現有的瀏覽器會話嗎? :) – Nayn 2010-12-03 08:39:01
@Nayn - 是的,你可以! :)有一個參數可以在啓動時發送selenium RC:-browserSessionReuse – olamundo 2010-12-03 11:19:03