2012-07-20 45 views
8

我在使用水豚測試tinymce形式時遇到了麻煩。我正在使用tinymce-rails,並在我的表單中有7位編輯。另外我使用tinymce的asciimath插件。如何使用水豚和硒填充錫-鐵欄編輯器?

一切工作正常,但我無法編寫測試來填寫tinymce編輯器。

這裏是我的步驟定義代碼的樣子,非常類似於描述here

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

問題是,當我運行以下命令:

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 

所以clearsend_keys :tab工作如預期。但我無法發送任何字符串。 send_keys函數總是返回空字符串,並且當我使用pry進行測試時沒有任何反應。

這裏怎麼回事?以及如何調試/調查問題?

謝謝。

回答

2

按照說明here切換到chrome解決了我的問題。

顯然這個問題與firefox驅動中的一個bug有關。

儘管如此,我認爲這是一個有效的Firefox問題。

+0

請參閱http://code.google.com/p/selenium/issues/detail?id=3569 – 2012-07-23 16:54:42

+0

感謝您的幫助Andrey。我也看到了那個頁面,並決定在之後切換到chrome。 – 2012-07-25 12:35:43

0

嘗試切換到包含TinyMCE的textarea的輸入的iframe,並比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

謝謝。但是這沒有幫助。我可以導航iframes,選擇編輯器,清除他們的輸入沒有任何問題..甚至我可以發送:製表鍵。我的問題是我不能在Firefox中發送'字符串'。此外,一切都在與鉻現在工作。 – 2012-07-25 12:32:04

4

我知道這是一個老問題,但我只是發現它在試圖解決這個問題爲好。

雖然原來的問題說他在同一頁上有7個tinymce,但我認爲我的解決方案也可能適用於他,但我知道如果我的情況有一個tinymce,它就會工作。

在我的要求規範我用這個:

page.execute_script( '$(tinymce.editors [0] .setContent( 「我的內容在這裏」))')

的page.execute_script與告訴它運行jQuery函數。然後它找到第一個tincymce編輯器並設置內容。

工作就像一個魅力對我來說。我認爲如果有不止一種錫酸鹽可以通過它的位置來調用。