Rspecでリンクやボタンにxpathを使う方法についてです。
こんなとき使える
以下のスクショ画面の場合
Rspecのクリック操作のコードは、valueの値を使えばこんなふうに書く。
click_on ‘Create my account’
けど、このボタンの名前を変更(例えば”Create my account”を”アカウント作成”に変更)したら
このテストが通らなくなってしまう。
xpathを使えば、パスで指定しているからそんなことが無くなる。
xpathの確認の仕方↓
他には
同じページに、役割は異なる、同じ名前のリンクを作った場合にも使える。
例えば、タスクアプリで、終了期限と優先度のソート機能を作って、それぞれ同じソートアイコンを使う。
ソートアイコン自体は同じものだけど、役割が違うからRspecでは別々の名前をつけてあげないといけない。
xpathを使えばそれぞれ別名にできる。
書き方
valueで指定する場合
click_on 'Create my account'
xpathで指定する場合
パターン1:
find(:xpath, '/html/body/form/input[6]').click
調べた感じこれが一番シンプルに書けそうな書き方だった。
パターン2:
Create_account_link = find(:xpath, "/html/body/form/input[6]")
Create_account_link.click
パターン1を変数に入れた。
clickのところは、click_on, click_link, click_buttonではダメだった。
xpathの書き方を調べると、いろいろあってどれが正しい書き方か分からず、この書き方が正しいかわかりませんが、これで出来はしました。
間違いがありましたら、コメントいただけると幸いです。
コメント