我正在尝试测试一个wysihtml5编辑器。用户将单击编辑器(显示编辑器控件)并开始键入。这将揭示更多要填补的领域。
这一切都按预期运行,但我正在尝试设置capybara脚本来复制此用户流。
这是结构:
<div class="wysiwyg-textarea">
<ul id="prompt-content-12345-wysihtml5-toolbar" >
<textarea id="prompt-content-12345" >
</textarea>
<input type="hidden" name="_wysihtml5_mode" >
<div>
<iframe class="wysihtml5-sandbox" >
<html>
<body class="no-border placeholder-as-label initials-title wysihtml5-editor placeholder" contenteditable="true" > …..
</body>
</html>
</iframe>
</div>
我尝试过以下操作,并且不断收到下面提到的错误:
脚本:
#page.execute_script("parent.focus()")
#page.execute_script %Q{ $("self.editor.body.focus()")}
#page.execute_script %Q{ $(document).ready(.focus)}
#find(:xpath, "//form/div/div/div/div/iframe").click
#page.execute_script %Q{ $("//form/div[id='magic-box-prompts']").focus() }
#page.execute_script("editor.focus()")
#page.execute_script %Q{ $("body").trigger("click")}
#page.execute_script %Q{ $(iframe.contentWindow.focus()}
#page.execute_script %Q{ $(.contentWindow.focus()}
#page.execute_script %Q{ $(this.iframe.contentWindow.document.body.focus()}
#page.driver.browser.frame_focus('iframe')
#var editor_body = (".wysihtml5-sandbox").document.body
#page.execute_script %Q{ $(editor_body).keyup(function() { console.log($(this).text()) }) }
#find('.ta-wrapper.wysiwyg-textarea').click
#page.execute_script %Q{ $('.wysiwyg-textarea').trigger()}
#page.execute_script %Q{ $('.wysiwyg-textarea').data("wysihtml5").editor.setValue('this is a text') }
#page.execute_script %Q{ $('body.no-border.placeholder-as-label.mb-title.wysihtml5-editor.placeholder', $('iframe.wysihtml5-sandbox').contents()).on('keyup')}
#page.execute_script %Q{$('iframe').contents().find('body').attr('contenteditable', true).on( 'keyup',function() { }) }
#page.execute_script %Q{$(".mb-input").focus().trigger('keyup')}
#page.execute_script %Q{$('body.wysihtml5-editor', $('iframe.wysihtml5-sandbox').contents()).trigger('keyup')}
#page.execute_script %Q{ $("window.editor.composer.element").focus().trigger("keyup") }
错误:
Failure/Error: *name of the script*
Selenium::WebDriver::Error::JavascriptError:
$(...) is null