カピバラのフレームに問題があります。1 つのフレームに切り替えて、Football をクリックしてから、そのカテゴリのすべてのリンクをクリックしますが、2 つのリンクだけがクリックされた後、この要素が現在のフレームにないというメッセージでエラーが発生します。
require 'rubygems'
require 'capybara'
require 'capybara/dsl'
Capybara.run_server = false
Capybara.current_driver = :selenium
Capybara.default_wait_time = 5
Capybara.app_host = 'http://sports.sbobet.com'
module MyCapybaraTest
class Test
include Capybara::DSL
def test
visit('/')
page.driver.browser.switch_to.frame 'leftFrame'
wait_until {page.find('table span.SportName').visible?}
page.all('table span.SportName').each do |span|
if (span.text == 'Football')
span.click
page.all('div#MarketTbl span.LMenuLeft a').each do |a|
puts a[:href]
a.click
sleep 3
end
end
end
end
end
end
t = MyCapybaraTest::Test.new
t.test
詳細なエラーは次のとおりです: https://gist.github.com/3252149
削除すると正しく実行されるため、何が問題なのかわかりませんsleep 3
。