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