Wie kann ich mit Capybara zwischen zwei Bildern wechseln?

Ich versuche, etwas innerhalb von 2 Frames zu tun, aber jedes Mal, wenn ich versuche, zwischen Frames zu wechseln, tritt ein Fehler auf. Zum Beispiel:

# encoding: utf-8

require "capybara/dsl"

Capybara.run_server = false
Capybara.current_driver = :selenium
Capybara.app_host = 'https://hb.posted.co.rs/posted'

class Account
  include Capybara::DSL

  def check_balance
    visit('/')
    page.driver.browser.switch_to.frame 'main'
    fill_in 'korisnik', :with => 'foo'
    fill_in 'lozinka', :with => 'bar'
    click_button 'Potvrda unosa'

    page.driver.browser.switch_to.frame 'header'
    click_on 'Stanje' 
  end
end

account = Account.new
account.check_balance

Fehler ist:

[Remote-Server] Datei: ///tmp/webdriver-profile20120810-9163-xy6dtm/extensions/[email protected]/components/driver_component.js: 6638: in `unknown ': Frame: main kann nicht gefunden werden (Selenium :: WebDriver :: Error :: NoSuchFrameError)

Worin besteht das Problem? Vielleicht mache ich hier etwas falsch?

Wenn ich die Reihenfolge der Frame-Wechsel ändere, versuche ich zuerst, auf 'Header' und dann auf 'Main' zu wechseln, dann wird derselbe Fehler ausgelöst, mit der Ausnahme, dass diesmal kein 'Main' Frame vorhanden ist:

# encoding: utf-8

require "capybara/dsl"

Capybara.run_server = false
Capybara.current_driver = :selenium
Capybara.app_host = 'https://hb.posted.co.rs/posted'

class Account
  include Capybara::DSL

  def check_balance
    visit('/')
    page.driver.browser.switch_to.frame 'header'
    click_on 'Stanje' 

    page.driver.browser.switch_to.frame 'main'
    fill_in 'korisnik', :with => 'foo'
    fill_in 'lozinka', :with => 'bar'
    click_button 'Potvrda unosa'
  end
end

account = Account.new
account.check_balance

Error:

Datei [Remote-Server]: ///tmp/webdriver-profile20120810-9247-w3o5hj/extensions/[email protected]/components/driver_component.js: 6638: in `unknown ': Frame: main kann nicht gefunden werden (Selenium :: WebDriver :: Error :: NoSuchFrameError)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage