私はRuby on Railsを初めて使い、2つのフレームで構成されたカタログWebサイトで作業していました。最初のものには製品ファミリが含まれ、2番目のものにはそのファミリ内のマシンのリストが動的に表示されますフレーム。フォームのターゲットは、そのフレームの名前ですので、これが起こる: Capybara/Poltergeistの別のフレーム内からフレームに切り替える方法は?
私はすでにthis answerを視察してきたが、重要な違いがあります:私は繰り返し、「within_frame( 『families_frame』)を作業することにより、第1のフレームにおける製品ファミリのリンクを介してクリックします2番目のフレームのマシンの一覧を取得します。しかし、 "switch_to_frame"と同様の解決法は機能しません。次のエラーが発生します。 は、within
のwithin_frame
の 'within_window
'のブロックから呼び出されるはずです。 (Capybara :: ScopeError)
私のイテレータは "within_frame"から実行されるため、どのようにして結果のフレームに切り替えることができますか?コンテンツに達した後、作業フレームに戻ることはできますか? HTML構造は次のとおりです。
<HTML>
<FRAME NAME="families_frame" SRC=".../productfamily.jsp">
<FRAME NAME="machines_frame" SRC=".../blank.jsp">
</HTML>
はあなたにたくさんありがとうございました。
あなたがあなたのwithin_frame外の反復処理する必要があるので、何かfamilies = []
within_frame 'families_frame' do
families = page.all('the selector for the items to iterate on')
end
families.each do |family|
within_frame 'families_frame' do
family.click
end
within_frame 'machines_frame' do
# whatever you need to do in the machines frame
end
end
このようなノート投稿したHTML構造で
これが本当なら2つの兄弟フレーム(他のものに影響する)(奇妙なページ設定)あなたは親の元に戻らずに1つのフレームから別のフレームに移動することはできませんt。特定のフレームからは、その親またはその子フレームにしか移動できません。より完全な答えを得るためのhtml構造の例を示してください。 –
ありがとう、私は実際のhtml構造を追加しましたが、
部分は省略しました。 – Riman