1

ページに新しいレッスンを追加するために、Railscasts ベースの js コードを使用しています。

Rspec と Capybara でテストする場合、動的に生成された選択メニューから、時間に基づく一意の ID を使用してオプションを選択するにはどうすればよいですか?

私の考えでは、すべての選択メニューを終了し、最後のメニューを取得することですが、何もクリックしていません。

Rspec コード:

        click_link "Edit "
        click_link "Add Another Lesson" #this then uses JS to put another select menu on the screen.
        select("Lesson 2", from: "#{ideally it would find the last select tag here}") #this is what i don't know how to find.

all Xpathを使用して最後の選択タグを見つける方法があることは知っていますが、わかりません。

4

2 に答える 2

1

@Andreyに感謝します。

私にとってうまくいったのは、text_field入力の場合です:

all(:css, '.hearter')[0].set "Just Awesome Man"

選択タグの場合:

all(:css, '.js-select')[0].select("1") # "1" was my value

于 2013-04-26T20:06:18.687 に答える
1

Actions#selectは、名前、ID、またはラベル テキストによってのみ要素を見つけることができます。持っていないので、Element#select_optionを使用する必要があります。ページ全体の最後の要素を選択する CSS または XPath セレクターを知らないので、次を使用できると思います。

all('select').last.find(:option, 'Lesson 2').select_option

すべての選択を見つけて、最後の選択のみを使用すると、少し見苦しく見えるかもしれません。別の要素内で選択する方がよい場合があります。

find(some_selector).find('select').find(:option, 'Lesson 2').select_option
于 2013-01-04T19:01:57.193 に答える