2012-08-23 107 views
2

我試圖切換到IE9中的iframe,因此我可以將send_keys()添加到文本區域。當我切換時,我可以告訴webdriver認爲它切換了(當我打印page_source時,它是正確的),但是在另一個文本字段(而不是TinyMCE)上光標仍然閃爍,此時,如果我發送密鑰,密鑰會被附加到其他文本框而不是TinyMCE。Selenium無法在Internet Explorer 9中切換到TinyMCE iframe

所以我一直在嘗試解決方法,如果我選擇了tinyMCE iframe和click(),光標位於正確的位置,我可以發送密鑰但我無法返回(切換回原始幀/窗口)提交輸入。

有沒有其他人在IE9中遇到過這種問題,有解決方法嗎?

這適用於Firefox和Chrome,不是IE9。

回答

3

我曾經有過這樣的問題,而且由於TinyMCE會生成一些動態內容,所以它很複雜。我最終做的操作TinyMCE編輯器的內容是通過page.execute_script直接調用API,並在JavaScript上完成所有操作。

的我的JS代碼的樣品是:

jQuery('textarea.tinymce').tinymce().setContent('test text in editor'); 
    jQuery('textarea.tinymce').tinymce().selection.select(jQuery('textarea.tinymce').tinymce().dom.select('p')[0]); 
    jQuery('textarea.tinymce').tinymce().execCommand('Italic','true'); 
    jQuery('textarea.tinymce').tinymce().execCommand('Underline','true'); 
    jQuery('textarea.tinymce').tinymce().execCommand('Bold','true'); 

的第一行中的TinyMCE的textarea的添加文本,所述第二選擇它(模擬用戶光標選擇),第三,第四和第五隻操縱控制。

.execCommand()對激活不同的擴展特別有用。之後,我剛剛驗證了我使用的表單字段是否設置了預期的HTML標記,並將其稱爲一天。

我希望它有幫助!

+0

我試圖避免js解決方案,但我不認爲有任何解決方法。我實際上最終使用:tinyMCE.activeEditor.setContent('

文本輸入

'); – JCarter

+0

我很高興它幫助! – MalSu