giả sử khách hàng bắt đầu phiên selen trên máy chủ RC, nhưng ở giữa phiên, máy khách "đã biến mất". Trình duyệt sẽ vẫn mở, và cuối cùng, sau khi đủ các phiên giảm như vậy, sẽ có đủ trình duyệt "mồ côi" để làm chậm máy tính.Cách đóng trình duyệt trên máy chủ selen RC bị mất ứng dụng khách
Trả lời
Bất kỳ phiên bản trình duyệt nào có session_id bạn có thể lưu trữ. Python dụ:
>>> import selenium
>>> browser = selenium.selenium("localhost",4444, "*firefox", "http://www.santiycr.com.ar")
>>> browser.start()
>>> browser.sessionId
u'b4ad1f1d624e44d9af4200b26d7375cc'
Vì vậy, nếu bạn lưu trữ những sessionId trong một tập tin khi bắt đầu thử nghiệm của bạn và sau đó loại bỏ nó khi xét nghiệm của bạn kết thúc, bạn sẽ có một log file với phiên cho bài kiểm tra mà không kết thúc đúng.
Bây giờ sử dụng cron, hoặc bất kỳ thực hiện thường xuyên, bạn có thể đọc tập tin đó, lặp qua các sessionIds lưu giữ trong nó và mở url sau (sử dụng một trình duyệt hay thậm chí là một thư viện http cho ngôn ngữ lập trình của bạn):
http://localhost:4444/selenium-server/driver/?sessionId=THE-SESSION-ID&cmd=testComplete
Điều đó cần thực hiện thủ thuật.
Chỉnh sửa: Tôi thấy câu hỏi này rất thú vị đã tạo bài đăng trong blog của tôi về giải pháp. Nếu bạn là một chàng trai python bạn sẽ tìm thấy nó thú vị: http://www.santiycr.com.ar/djangosite/blog/posts/2009/aug/25/close-remaining-browsers-from-selenium-rc
Ví dụ tốt Santi – AutomatedTester
Đối với trình duyệt Firefox, bạn có thể tìm sessionid bằng cách kiểm tra tên thư mục hồ sơ. Trên một hệ thống không giống như, 'ps axe | grep firefox-bin' sẽ trả về một cái gì đó như '12345? 1:00/usr/lib/iceweasel/firefox-bin -profile/tmp/customProfileDir
Bạn cũng có thể chỉ giết chết quá trình:
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
điều này sẽ giết tất cả các firefox, không chỉ là "zombie" một. vì vậy nếu, ví dụ, bạn chạy hai rc trên cùng một máy (không phải là không), bạn có thể kết thúc lên một ff được sử dụng bởi các RC khác. – olamundo
>>> browser.stop()
Giống như Santi giải thích ở trên.
- 1. Chạy trình duyệt selen trên máy chủ (Flask/Python/Heroku)
- 2. Phiên bị mất khi đóng trình duyệt
- 3. Chụp các trình duyệt bằng Selenium RC
- 4. Ứng dụng máy khách/máy chủ Cocoa
- 5. Đóng/hủy phiên khi trình duyệt hoặc tab bị đóng
- 6. Chạy selen phía sau máy chủ proxy
- 7. tạo ứng dụng java máy chủ ứng dụng khách
- 8. Tạo chứng chỉ phía máy khách trong trình duyệt và đăng nhập vào máy chủ
- 9. NoRouteToHostException trên máy khách hoặc máy chủ?
- 10. COMET (máy chủ đẩy tới máy khách) trên iPhone
- 11. trình duyệt phía máy chủ
- 12. Thông tin phiên bị mất trên BlackBerry (ứng dụng ColdFusion)
- 13. Máy chủ Websocket trong ứng dụng đóng gói chrome
- 14. Xây dựng ứng dụng Máy chủ/Khách hàng trong Cocoa
- 15. Thử nghiệm selen mà không cần trình duyệt
- 16. Tạo chứng chỉ ứng dụng khách trên thiết bị Android
- 17. Hình ảnh Blobstore Biến mất trên Máy chủ Phát triển Máy ứng dụng của Google
- 18. Làm cho ứng dụng Backbone.js trên máy chủ VÀ máy khách
- 19. Ứng dụng khách hết thời gian WCF và máy chủ
- 20. Cách sử dụng System.IdentityModel trong ứng dụng máy khách-máy chủ riêng
- 21. Silverlight: cách buộc trình duyệt tải xuống phiên bản ứng dụng khách cập nhật?
- 22. Socket.io là máy chủ, javascript 'chuẩn' là ứng dụng khách?
- 23. Sử dụng trình điều khiển web selen để chạy thử nghiệm trên nhiều trình duyệt
- 24. cách mô phỏng trình duyệt trên thiết bị di động (android) trên máy tính để bàn
- 25. Đóng máy chủ socket trên socket.io?
- 26. Cách đóng khung gui emacsclient mà không làm mất máy chủ
- 27. Máy khách IRC dựa trên trình duyệt có thể liên lạc trực tiếp với máy chủ IRC không?
- 28. cách phát hiện kết nối của người dùng bị mất hoặc đóng cửa sổ trình duyệt trong Nodejs socket.io
- 29. Tại sao dev_appserver.py (máy chủ ứng dụng của máy chủ ứng dụng) treo chờ yêu cầu?
- 30. Máy chủ Socket trong Javascript (trong trình duyệt)?
Bạn phải chấp nhận câu trả lời khi bạn cho rằng câu hỏi của mình đã được trả lời ... – Santi
Trên lưu ý tương tự, tôi có thể sử dụng lại các phiên trình duyệt hiện tại không? :) – Nayn
@Nayn - có bạn có thể! :) Có một đối số bạn có thể gửi selenium RC khi nó bắt đầu: -browserSessionReuse – olamundo