3

wysihtml5 エディターをテストしようとしています。ユーザーはエディターをクリックし (エディター コントロールが表示されます)、入力を開始します。これにより、入力するフィールドがさらに表示されます。

これはすべて期待どおりに機能しますが、このユーザー フローを複製するようにカピバラ スクリプトを設定しようとしています。

  • iframe の上にフィールド ul と div を表示するには、iframe 本体の内部に注目する必要があります。
  • 次に、iframe 本体内に (トリガー キーアップ) と入力する必要があります (これにより、より多くのフィールドがページに読み込まれます)。

これは構造です:

<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