2009-10-01 34 views
5

Chúng tôi có dự án giao diện người dùng web trong MVC và để kiểm tra tự động, chúng tôi đang sử dụng Selenium, đó là một công cụ tuyệt vời. Nhưng tôi đang đối mặt với một số vấn đề trong việc nâng cao sự kiện với Selenium.Selenium RC và các sự kiện kiểm soát đầu vào

Kịch bản: Tôi có hộp văn bản dự kiến ​​giá trị lỗi và đã phát sinh lỗi (javascript) khi nhập bất kỳ giá trị nào và chúng tôi nhấn tab từ hộp văn bản đó hoặc nhấp vào bên ngoài bất kỳ đâu trên trang.

Nó hoạt động tốt với tương tác người dùng bình thường với trang web nhưng khi sử dụng selen tôi không thể đạt được hành vi này. Tôi đang đặt một số văn bản với Selenium.Type ('elementId', - ve giá trị) sự kiện này không bị sa thải và các lỗi không bong bóng lên.

Tôi đã thử sử dụng FireEvent ("textboxId", "blur") nhưng không hoạt động. Cách giải quyết duy nhất là Tập trung vào hộp văn bản, thêm một số giá trị, sử dụng FireEvent ("hộp văn bản", "làm mờ") và sau đó Tập trung vào một số hộp văn bản khác.

Có ai có ý tưởng nào để giải quyết vấn đề này không?

Trả lời

1

Cách giải quyết của bạn không giống như một tùy chọn tồi. Khi bạn tập trung vào trường, sau đó thay đổi nội dung và sau đó bạn làm mờ (tập trung vào trường khác) là tương tác chính xác tương tự như người dùng thực hiện.

Một giải pháp thay thế khác (tôi vẫn thích phương án tập trung vào trường khác) là sử dụng getEval để kích hoạt hàm javascript xác nhận trường. Bạn có thể kiểm tra hướng dẫn này về cách để làm điều đó: http://www.theautomatedtester.co.uk/seleniumtraining/Selenium_JavaScript.htm

4

tôi đã có thể có được điều này làm việc với khách hàng Java trong Selenium RC bằng cách gọi

  • loại ("id = textboxid", "newValue");

và sau đó

  • fireEvent ("id = textboxid", "mờ");

Bạn có nhận được bất kỳ dấu hiệu nào về việc liệu sự kiện "mờ ảo" có bị kích hoạt không? Tôi tự hỏi liệu có lẽ người định vị không làm việc đúng để kích hoạt sự kiện này. Bất kỳ thủ thuật nhỏ nào bạn cần kéo để làm việc đó, để tránh làm điều này cho mọi lĩnh vực, bạn nên quấn 2-3 cuộc gọi trong một chức năng nếu sử dụng máy khách RC hoặc register some user extensions để thực hiện điều đó trong một bước nếu bạn đang sử dụng IDE Selenium.

0

"Làm mờ" là một tìm kiếm tuyệt vời! Cảm ơn bạn.

Sự cố của tôi hơi khác một chút. Dưới đây là cách tôi đã sử dụng "làm mờ" cho danh sách thả xuống (cha mẹ) không đăng lại để điền danh sách thả xuống thứ hai (con) (ví dụ: Tiểu bang và Quận).

  1. Selenium.Focus ("id = drpdwnState");
  2. Selenium.Select ("id = drpdwnState", "label = Michigan");
  3. Selenium.FireEvent ("id = drpdwnState", "blur");
  4. Selenium.Focus ("id = drpdwnCounty");
  5. Selenium.Chọn ("id = drpdwnCounty", "label = Grand Traverse");

Hy vọng điều này sẽ giúp ai đó. Chúc mừng!

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