3

我正在尝试测试 wysihtml5 编辑器。用户将单击编辑器(显示编辑器控件)并开始输入。这将显示更多要填写的字段。

这一切都按预期运行,但我正在尝试设置 capybara 脚本来复制这个用户流。

  • 我需要将注意力集中在 iframe 主体内部以显示 iframe 上方的字段 ul 和 div 。
  • 然后我需要在 iframe 正文中键入(触发 keyup)(然后应该将更多字段加载到页面上)。

这是结构:

<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
4

0 回答 0