Gần đây, chúng tôi đã bắt đầu thử nghiệm ứng dụng dựa trên Django của chúng tôi bằng Selenium. Các thử nghiệm chạy tốt trên Linux, nhưng một số lỗi trên Mac OS X. Chúng tôi đang sử dụng Firefox làm trình duyệt trong cả hai trường hợp và mất một thời gian (và một số may mắn) để tìm ra sự khác biệt quan trọng giữa hai trường hợp FF đang chạy dưới dạng ứng dụng nền trước hoặc dưới dạng cửa sổ nền. Dưới đây là những gì xảy ra trên Linux:Cách buộc Firefox trở thành ứng dụng nền trước khi thử nghiệm với Selenium trên Mac OS X
- Selenium yêu cầu Firefox truy cập trang đăng ký người dùng.
- Selen sẽ điền vào tên người dùng và địa chỉ email không hợp lệ.
- Thay đổi selen tập trung từ trường địa chỉ email sang trường khác trên cùng một trang (trường hợp này là hộp tìm kiếm, nhưng điều đó không quan trọng --- tất cả những gì quan trọng là sự kiện thay đổi tiêu điểm).
- Mã xác thực Javascript trong trang web thông báo rằng địa chỉ email không hợp lệ và chèn thông báo lỗi vào trang.
- Selen phát hiện thông báo lỗi đó và đánh dấu thử nghiệm là đã qua.
Khi chúng tôi chạy trên Mac OS X, tuy nhiên, bướC# 4 không xảy ra trừ khi chúng bằng tay foreground cửa sổ Firefox trong khi thử nghiệm đang chạy --- nếu chúng ta để nó ở chế độ nền (đó là theo mặc định), Javascript trong trình duyệt không nhận được sự kiện thay đổi tập trung, do đó thông báo lỗi sẽ không bao giờ được chèn vào DOM của trang, vì vậy, thời gian Selenium chờ đợi và thử nghiệm không thành công.
Chúng tôi có thể buộc Selenium đặt nền trước trình duyệt khi chạy thử nghiệm để Javascript của chúng tôi có được sự kiện như chúng tôi muốn không? Nếu vậy, làm thế nào?
Bạn có thể đăng mã chính xác bạn đang sử dụng không? – Amey