[解決済み] Capybaraを使ったドロップダウンでのオプションの選択方法
2022-02-18 13:55:40
質問
Capybara (2.1.0) を使ってドロップダウンメニューから項目を選択しようとしています。
番号で選択したい(2番目、3番目などの選択肢を選ぶという意味)。
いろいろとググってみたのですが、うまくいきません。
値で選択できました。
find("option[value='4c430d62-f1ba-474f-8e8a-4452c55ea0a8']").click
しかし、私はその方法を使いたくありません。なぜなら、値は変化するものであり、私のテストはもろくなるからです。
ドロップダウンのHTMLは
<td class="value">
<select name="organizationSelect" id="organizationSelect" class="required">
<option value="NULL">Choose...</option>
<option value="4c430d62-f1ba-474f-8e8a-4452c55ea0a8"> Institution1</option>
<option value="e1a4efa7-352d-410a-957e-35c8a3b92944"> Institution / test</option>
</select>
</td>
こんなこともやってみました。
option = find(:xpath, "//*[@id='organizationSelect']/option[2]").text
select(option, :from => organizationSelect)
しかし、このようなエラーになります。
Ambiguous match, found 2 elements matching option "Institution" (Capybara::Ambiguous)
では、ドロップダウンから1番目、2番目、3番目などのオプションを選択するにはどうすればよいのでしょうか(Capybaraを使用して)?
どのように解決するのですか?
を見てみると
のソースは
select
メソッド
を渡すとどうなるかがわかります。
from
のキーは、基本的に
find(:select, from, options).find(:option, value, options).select_option
つまり
<select>
を検索し、次に
<option>
を呼び出し、その中で
select_option
の上で
<option>
ノードになります。
最初の2つはすでにほとんどできているので、それらを並べ替えるだけです。それから
select_option
メソッドを最後に追加しました。
find('#organizationSelect').find(:xpath, 'option[2]').select_option
関連
-
[解決済み] ルビーオールウェイズ ラウンドアップ
-
[解決済み] Rubyのフィボナッチ数列(再帰)
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] Rubyでnil値をマッピングして削除する方法
-
[解決済み] ルビーです。そのようなファイルやディレクトリはありません @ rb_sysopen - testfile (Errno::ENOENT)
-
[解決済み] Rubyで日付文字列をパースする
-
[解決済み] 文字列の文字をアルファベット順に並べるには?
-
[解決済み] ネストされたクラスとモジュールにネストされたクラスはいつ使用するのですか?
-
[解決済み] Railsアプリでhttpartyを使用して基本認証を使用するには?
-
[解決済み] Ruby で配列の順序を逆転させる
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】StringからIntegerへの暗黙の変換がない(TypeError)?
-
[解決済み] Ruby - 文字列を日付に変換する
-
[解決済み] Rubyでリモートホストの到達可能性をpingで確認する方法
-
[解決済み] nil から String への暗黙の変換ができないエラー
-
[解決済み] Ruby で Fixnum から String への暗黙の変換ができない (TypeError)
-
[解決済み] gemをインストールできない - makeが内部または外部のコマンド操作可能なプログラムまたはバッチファイルとして認識されない。
-
[解決済み] Rubyでリフレクション?
-
[解決済み] Ruby Net::HTTPの実行期限が切れた
-
[解決済み] ファイルの存在を確認する方法 [重複]について
-
[解決済み] Ruby 1.8.7 ハッシュを文字列に変換する