テストコードの話になります。
find().click
と言われるコードが出てきます。
これは検証ツールを使い
クリックしたい場所のinput要素とname属性を探して
()の中に書きます
find(‘input[name=“commit”]’).click
これを入力することで
そのページのこの要素を持つボタンやリンクをclick
してくれるって書いてます。
つまり…
クリックしたい要素を!
その場所まで飛んで!
検証ツールで探して!
見つけたらそれを入力して!
って書いてます。
ご安心ください。
簡単なコード!
ご用意しました。
クリックしたいものがボタンの場合
<button>送信</button>
<input type="submit" value="送信">
form_with内の
<%= f.submit "送信" %=>
こんな形の場合。
click_button 'ボタンの表示名'
これを使います。
押したいボタンの名前は「送信」なので
click_button '送信'
これでOKです。
簡単!!これで押したいボタンの表示名がわかれば設定可能ですね!
ただこれはリンクが押せません。
クリックしたいものがリンク(a要素やlink_to.)
<a href="rspec">RSpecについて</a>
<%= link_to "RSpecについて", rspec %>
今回は「RSpecについて」の文字をクリックすると
そのページに行けるとします。
この場合は
click_link 'リンクの表示名'
を入力します
click_link ‘RSpecについて’
はい出来た。
余裕ですね。
これなら押して欲しいリンクの表示名だけわかればできます!
こっちはボタンが押せません。
そして!
ここにきてもう1段階進化します。(ごめんなさい長いです)
クリックしたいものがリンクなのかボタンなのか
分からないあなた!
安心してください!!
あります。
ボタンかリンクかわからんけど!
とりあえずここクリックして!
そんなあなたにはこれ!
click_on 'クリックしたい場所の表示名'
これはボタンでもリンクでもクリックしてくれます。
click_on ‘送信’
click_on ‘RSpecについて’
こんなこともできます!
ただし例外があります。
リンク先のないボタンや、リンクは押せません。
a要素の中にhrefを入力していない場合などは押せません。
<a>RSpecについて</a>
これにはhrefがないので押せません。
基本的にはclick_onで解決できるが、場合によっては他のものを使う必要がありそう。
以上です。