2012-07-20 43 views
8

Tôi gặp khó khăn khi sử dụng capybara để kiểm tra biểu mẫu tin nhắn. Tôi đang sử dụng tinymce-rails và có 7 người chỉnh sửa trong biểu mẫu của tôi. Ngoài ra tôi đang sử dụng plugin asciimath với tinymce.Làm thế nào để điền vào trình soạn thảo tinymce-ray với capybara và selen?

Mọi thứ hoạt động tốt, nhưng tôi không thể viết các bài kiểm tra để điền vào trình chỉnh sửa tinymce.

Dưới đây là cách mã định nghĩa bước của tôi trông như thế nào, rất giống với những gì được mô tả here:

within_frame("content_ifr") do 
    editor = page.find_by_id('tinymce') 
    editor.native.send_keys 'test' 
end 

Vấn đề là khi tôi chạy như sau:

editor.native.clear   # works, clear the editor area, I'm testing this with pry 
editor.native.send_keys :tab # works, moves focus to next input 
editor.native.send_keys 'test' # returns "", nothing happens, nothing in editor 

Vì vậy clearsend_keys :tab công việc như mong đợi. Nhưng tôi không thể gửi bất kỳ chuỗi nào. send_keys chức năng luôn luôn trở về chuỗi rỗng, và không có gì xảy ra khi tôi làm bài kiểm tra bằng cách sử dụng nâng lên.

Điều gì xảy ra ở đây? và làm cách nào để tôi có thể gỡ lỗi/điều tra sự cố?

Cảm ơn.

Trả lời

2

Chuyển sang chrome như được mô tả here đã giải quyết được sự cố của tôi.

Rõ ràng vấn đề có liên quan với lỗi trong trình điều khiển firefox.

Tôi vẫn nghĩ đó là câu hỏi hợp lệ cho firefox.

+0

Xem http://code.google.com/p/selenium/issues/detail?id=3569 –

+0

Cảm ơn bạn đã giúp Andrey. Tôi cũng thấy trang đó và quyết định chuyển sang Chrome sau. –

0

Hãy thử để chuyển sang một iframe có chứa đầu vào TinyMCE textarea, và hơn send_keys:

# +session+ is an instance of Capybara::Session class 
browser = session.driver.browser 
browser.switch_to.frame(iframe_id) 
editor.native.send_keys(text) 
browser.switch_to.default_content 
+0

Cảm ơn. Nhưng điều này không giúp được gì. tôi có thể điều hướng trong iframe, chọn biên tập viên, xóa đầu vào của họ mà không gặp bất kỳ vấn đề gì. Hoặc thậm chí tôi có thể gửi: tab tab. Vấn đề của tôi là tôi không thể gửi 'chuỗi' trong firefox. Ngoài ra, mọi thứ đang hoạt động với Chrome ngay bây giờ. –

4

Tôi biết rằng đây là một câu hỏi cũ nhưng tôi chỉ tìm thấy nó trong khi cố gắng giải quyết vấn đề này là tốt.

Mặc dù câu hỏi ban đầu nói rằng ông có 7 tin nhắn trên cùng một trang Tôi nghĩ rằng giải pháp của tôi có thể làm việc cho anh ta quá nhưng tôi biết nó sẽ làm việc nếu có một tin như trường hợp của tôi.

Trong yêu cầu spec của tôi tôi đã sử dụng này:

page.execute_script ('$ (tinymce.editors [0] .setContent ("Nội dung của tôi ở đây"))')

Các page.execute_script với yêu cầu nó chạy hàm jQuery. Sau đó, nó tìm thấy trình soạn thảo tincymce đầu tiên và đặt nội dung.

Làm việc như một sự quyến rũ đối với tôi. Tôi nghĩ rằng nếu có nhiều hơn một tinymce nó có thể được gọi bởi vị trí của nó.

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