シンボル補間は試していませんが、文字列補間は機能するはずです。しかし、多くの場合、それを行う必要はありません...通常、この種のことは、セクションを使用してWebサイトをより厳密にモデル化することで解決できます。要素を動的に作成する代わりに、要素の配列を作成するelements
orメソッドを使用できます。sections
これがあなたが与えた例に基づいて私がすることです:
あなたの例から、あなたのウェブサイトには乗客がリストされていると推測しています...各乗客が別々のdivに表示されている場合は、次のように考えることができます。
#section that models a single passenger
class PassengerDetails < SitePrism::Section
element :first_name, "input[id^=passenger-first-name]"
element :last_name, "input[^=passenger-last-name]"
end
#page that contains a list of passengers
class FlightManifest < SitePrism::Page
sections :passengers, PassengerDetails, ".passenger-details"
#... where ".passenger-details" is a style on the divs that contains a passenger's details
end
上記のことを考えると、乗客のリストを配列として参照できます。
Then /^the flight manifest contains the correct first and last names for each passenger$/ do
@flight_manifest.passengers.each_with_index do |passenger, i|
passenger.first_name.text.should == @expected_passengers[i].first_name
passenger.last_name.text.should == @expected_passengers[i].last_name
end
end
それが役立つかどうか、またはあなたのウェブサイトでそれが可能かどうかはわかりませんが、それはあなたを正しい方向に向けるかもしれません...