2009-05-15 27 views
8

Tôi đang bắt đầu với Selenium IDE và cố gắng thử nghiệm một ứng dụng web có đầy đủ các hộp thoại phương thức (window.showModalDialog).Làm thế nào để kiểm tra các hộp thoại phương thức với Selenium?

Ghi thử nghiệm dường như hoạt động (ngoại trừ không có gì trong nhật ký khi hộp thoại bật lên) nhưng chúng không phát lại đúng cách. Kịch bản thực sự mở cửa sổ (được kích hoạt bởi một nút bấm), nhưng sau đó chỉ chờ đợi vô thời hạn.

Mọi đề xuất?

Trả lời

3

Từ Selenium FAQ, Selenium dường như làm việc với một số loại hộp thoại nhưng không phải người khác:

Tôi không thể tương tác với một hộp thoại popup. Bài kiểm tra của tôi dừng lại trong bài hát!

Bạn có thể, nhưng chỉ khi hộp thoại là hộp thoại cảnh báo hoặc xác nhận . Không thể bỏ qua các hộp thoại đặc biệt khác bởi javascript và do đó hiện không thể tương tác với . Chúng bao gồm "Lưu tệp", "Nhớ mật khẩu này" (Firefox) và các hộp thoại phương thức (IE). Khi chúng xuất hiện, Selen chỉ có thể vắt tay trong tuyệt vọng.

Để giải quyết vấn đề này, bạn có thể sử dụng giải pháp (nếu có); nếu không bạn có thể phải loại trừ thử nghiệm từ kho dữ liệu tự động của mình. Đối với hộp thoại "Save File" trong Firefox, một mẫu tùy chỉnh thể được chỉ định khi chạy qua RC sẽ luôn gây ra các tập tin để được tải về một quy định vị trí, mà không yêu cầu người dùng (xem http://forums.openqa.org/thread.jspa?messageID=31350) . Hộp thoại "Nhớ mật khẩu này" sẽ không xuất hiện trở lại sau khi bạn đã chọn để ghi nhớ. Hiện tại, có không thể thực hiện được nhiều về các hộp thoại phương thức của IE .

Tôi dường như nhớ một người nào đó đang làm việc xung quanh việc này với tập lệnh AutoHotKey đã loại bỏ hộp thoại.

+0

Vấn đề là đây không phải là các hộp thoại nhỏ - chúng là các giao diện phong phú cần kiểm tra. Tôi sẽ thử cái gì khác, tôi đoán vậy. Cảm ơn! –

3

tôi đã được sử dụng Selenium IDE để kiểm tra modals jQuery cho khá sometime bây giờ, tôi chưa bao giờ phải đối mặt với bất kỳ vấn đề. Dưới đây là những điều tôi làm gì để đảm bảo rằng các thử nghiệm thực hiện đúng trên phát lại:

  • thực thi kịch bản với tốc độ chậm nhất có thể
  • khi phương thức mở ra, tôi sử dụng lệnh waitForElementPresent để xác minh sự hiện diện của ít nhất một trong các thành phần cấu thành trên trang; đối số là, nếu một phần tử tải đúng cách, nó là an toàn để giả định rằng tất cả các phần tử và do đó cửa sổ phương thức được nạp đúng cách.

Hy vọng điều này sẽ hữu ích. Nếu bạn muốn được trợ giúp thêm, bạn có thể chia sẻ mã với tôi cùng với lỗi trong thực thi mà IDE ném ra cho bạn.

0

Đây là cách tôi xử lý bật lên cảnh báo trong Selenium IDE

nhấp chuột phải vào các yếu tố (trong trường hợp này cửa sổ pop up) có một số lệnh bạn có thể chọn. Ngoài ra còn có một hiển thị tất cả các lệnh có sẵn mà có thể là một trợ giúp. Bạn nên sử dụng AssertElementPreset và tôi đoán định vị tốt nhất trong trường hợp này là CSS. Vì vậy, bạn có thể chọn AssertElementPresent.

Hoặc

bạn có thể sử dụng hai lệnh trên Selenium IDE

selectWindow | null 
verifyElementPresent | css=div.content 

Hope this helps!

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