15
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ajaxのエンドツーエンドテストを書く際など、思うように望んだ状態を作り出せず、直接JavaScriptを実行できれば楽なのに・・・というケースがたまにあると思います。
capybaraのexecute_scriptを使えば任意のJavaScriptを実行できます。

page.execute_script "alert('bar');"

これを利用すれば、disabledやreadonlyになっているフォームに強引に値を送り込めます。

page.execute_script "$('#foo').val('forced post message');"

通常、このように現実と乖離したテストを書くべきではありませんが、セキュリティ上の問題をテストするのには便利かも知れません。

以上はCapybara.javascript_driver = :poltergeistで確認していますが、selenium等のドライバで動作するかどうかは不明です。
(動作したら教えてくれると嬉しいです)

15
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?