2011-10-23 24 views
7

Tôi đang thử nghiệm đầu đọc đầu đọc mã vạch ... nó hoạt động giống như bàn phím nhưng chấm dứt từng mã vạch bằng ký tự nhập phím. JavaScript của tôi phát hiện khóa nhập và trả lời (ứng dụng backbone.js).capybara: điền vào giá trị trường mẫu với chấm dứt khóa nhập

Làm cách nào để "điền vào" trường biểu mẫu bằng chuỗi có kết thúc nhập giá trị khóa?

Ngăn thử nghiệm của tôi là dưa chuột/capybara/capybara-webkit.

Trả lời

4

Cân nhắc sử dụng Capybara::Driver::Selenium làm trình điều khiển trang cho trường hợp cụ thể đó. Nếu bạn làm thì bạn có thể làm những việc như thế này:

place = page.find_by_id('tinymce').native 
place.send_keys("I rule!") 
place.send_key "\xEE\x80\x83" 
+0

Cảm ơn bạn đã đề xuất của bạn. Tôi đã làm điều này thành công trong Selenium, mặc dù không chính xác như gợi ý của bạn. Nhưng tôi đã cố gắng để tăng tốc độ thử nghiệm của tôi với capybara-webkit. –

+1

Bạn có thể quản lý các tình huống và trình điều khiển của mình bằng cách sử dụng thẻ. Ví dụ bạn có thể cấu hình hệ thống của bạn, vì vậy bất kỳ kịch bản nào được gắn thẻ @selenium đang được chạy bằng trình điều khiển Selenium. Bằng cách này bạn có thể nhận được tốc độ của trình điều khiển webkit trong hầu hết các kịch bản của bạn và sử dụng selen cho những người có vấn đề. Chúc may mắn :) – socjopata

8

Trên thực tế, có vẻ như bạn chỉ có thể gửi một \ n phương pháp thiết lập bản địa Capybara và đạt được hiệu quả tương tự (trong một linh hoạt hơn, tài xế bất khả tri đường).

Vì vậy, trong mã của tôi, điều này hiện đang làm việc để kích hoạt một hình thức nộp sự kiện (xử lý bởi JS):

field = find("form input[type=text]") 
    field.set "my comment\n" 

(Lưu ý rằng, là tác giả của các yêu cầu kéo giải thích here, điều này chỉ hoạt động nếu bạn đang ràng buộc với sự kiện keydown cụ thể, không phải nếu bạn đang ràng buộc với biểu mẫu gửi mà nên kết quả từ nó.)

+0

Không hoàn toàn lái xe bất khả tri - phụ thuộc vào cách trình điều khiển thực hiện mục nhập biểu mẫu. Ví dụ, poltergeist chỉ được gọi là một sự kiện thay đổi cách đây không lâu, thay vì keydown và lot. ([Xem vé này] (https://github.com/jonleighton/poltergeist/issues/43)) Đối với tôi, điều này làm việc trong selenium chứ không phải poltergeist, tôi đang kiểm tra các sự kiện nhấn phím cho 'e.keycode == 13 ' –

+0

Điều này cũng không có tác dụng đối với tôi trong Poltergeist. Gỡ lỗi nó, có vẻ như các sự kiện nhấn phím được gửi luôn luôn có 'e.which == 0', rõ ràng là do lỗi trong WebKit đã tồn tại mãi mãi và hầu như không có sự chú ý nào https://bugs.webkit.org/show_bug .cgi? id = 16735 –

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