2012-05-14 45 views
5

Tôi gặp sự cố khi thử nghiệm ứng dụng web bằng Selenium/Python. Về cơ bản tôi không thể kiểm tra các yếu tố của một cửa sổ pop-up.Selenium: Kiểm tra cửa sổ bật lên

Kịch bản: Tôi có thể kiểm tra tất cả các yếu tố cho một trang. Nhưng khi tôi bấm vào một nút mà mở ra một cửa sổ pop up hộp nhỏ tôi không thể kiểm tra các yếu tố trên popup. Nó giống như cửa sổ bật lên không tập trung hoặc hoạt động.

Tôi có thể kiểm tra các yếu tố trên trang tiếp theo. Ví dụ, nhấp vào một nút, đưa tôi đến trang tiếp theo và tôi có thể làm việc với các phần tử trên trang 'tiếp theo'. Vì vậy, nó vấn đề có vẻ là popup cụ thể.

Tôi có thể đăng mã nhưng thực ra nó có thể gây nhầm lẫn ở giai đoạn này. Tôi có thể gửi mã trong một bài sau, nhờ

Trả lời

6

Có một tài sản được gọi switch_to

Q: Làm thế nào để xử lý bật lên cửa sổ?

A: WebDriver cung cấp khả năng đối phó với nhiều cửa sổ. Điều này được thực hiện bằng cách sử dụng phương thức WebDriver.switch_to.window(knownName) để chuyển sang cửa sổ có tên đã biết.

Nếu không biết tên, bạn có thể sử dụng WebDriver.window_handles để có danh sách các cửa sổ đã biết.

Bạn có thể vượt qua tay cầm để switch_to.window(handleName)

Ví dụ tôi sử dụng driverName.switchTo.window(driverName.getWindowHandle()) để có được một tổ chức của các quảng cáo mà tôi không muốn tìm kiếm tên.

tài liệu tham khảo bổ sung: http://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions

+0

Cảm ơn vì điều này. Tôi đang sử dụng selenium RC. Điều này có thể được điều chỉnh trong RC? – user1303594

+0

http://stackoverflow.com/questions/99045/handling-browser-pop-up-windows-with-selenium điều này dường như liên quan đến RC. Tôi không sử dụng RC, vì vậy tôi sẽ không biết. – CosminO

+0

Không có probs, nhờ giải pháp trình điều khiển web, sẽ có ích – user1303594

0

Đối với các API Selenium RC, bạn cần phải sử dụng lệnh SelectWindow để chuyển sang cửa sổ pop-up. Có thể chỉ định cửa sổ bằng tên của cửa sổ (như được chỉ định trên chức năng JavaScript window.open()) hoặc tiêu đề của cửa sổ. Để chuyển về cửa sổ chính, sử dụng SelectWindow(None).

Các vấn đề liên quan