1

Selenium IDE を使用して、アカウントにログインし、マウスをドロップダウンに合わせ、ログアウト ボタンを見つける基本的なテストをエクスポートしました。その後、テストは終了します。

私が見ている問題は、テストが ruby​​/test::unit/web ドライバー内でエクスポートされると、以前のコマンドwaitForPopUpがサポートされず、返されることです。

# ERROR: Caught exception [ERROR: Unsupported command [waitForPopUp | _self | 30000]]

そのマウスオーバーに移動するにはルビ翻訳が必要です。そうしないと、テストがタイムアウトしてエラーが返されるためです。また、この問題に再び遭遇した場合は、ruby webdriver コマンドのリストにリンクしていただければ幸いです。

4

1 に答える 1

4

Selenium IDEを使用して作成されたテストケースをRubyなどの言語にエクスポートする場合、完全に変換されないコマンドがいくつかあります。waitForPopUpはたまたまこれらのコマンドの1つです。代わりに、変換できなかったコード内の行を見つけて、同じことを行うためにサポートされているコマンドを作成する必要があります。

あなたはおそらくこのようなものを使いたいでしょう(テストされていないコード!):

# This code defines the method
def wait_for_and_switch_to_new_popup(timeout = 30) # seconds
  Selenium::WebDriver::Wait.new(:timeout => timeout,:message => "Failed to find popup within #{timeout} seconds!").until do
    @driver.window_handle != @driver.window_handles.last
  end
  @driver.switch_to.window(@driver.window_handles.last)
end 

...

# This calls the method to wait for and switch to the new popup.
# Use this inside your code to tell the browser to switch to the new popup
wait_for_and_switch_to_new_popup

Selenium WebDriverのRubyバインディング(DSL)の詳細については、公式Wikiページ(http://code.google.com/p/selenium/wiki/RubyBindings )で確認できます。

于 2013-03-23T03:34:14.343 に答える