2017-02-22 16 views
0

webdriver/seleniumで2.2.9のcodeceptionを使用して支払い処理フローをテストしています。 Codeception + Selenium、自動的に閉じたウィンドウでエラーが発生する

この

は、相互作用の概要です:

  • ユーザーは、当社のサイト上で自分の順番になります
  • 支払プロバイダを選択した後、新しいウィンドウが(これは、支払プロバイダによって制御されている)
  • それに支払プロバイダのウェブサイトで開かれています
  • ユーザが支払いプロバイダのサイトで支払詳細を記入します
  • 最後のボタンをクリックして支払いプロバイダのウェブサイトを閉じると、ウィンドウが閉じます(これは問題の場所です)
  • 我々が背景に確認フォームの支払プロバイダを取得
  • ユーザーが戻って私たちのサイトに取られている

すべてが、ウィンドウが自動的に支払いプロバイダによる流れの最後のステップとして、閉じますする場合を除いて、正常に動作します。私はセレンのサーバーの内部に警告を受け取ります:

警告 - 例外:ウィンドウが見つかりません。ブラウザウィンドウが閉じられている可能性があります。

とcodeception出力内部エラー:見つからない

[Facebookの\ webdriverを\例外\ NoSuchWindowException] ウィンドウ。ブラウザウィンドウが閉じられている可能性があります。支払プロバイダーウィンドウは自動的に私はこのようにそれに切り替えるよ開かれます後

問題を取得するには、ウィンドウの原因となる支払プロバイダサイトの「確認」ボタンをクリックすることによって引き起こされる
$I->switchToNextTab(); 

$I->click('.form-submitter'); // now the window is gone 

このエラーを防ぐためにできることはありますか? ウィンドウが閉じられると期待する方法はありますか?

ありがとうございました!

答えて

0

開いたブラウザウィンドウを閉じた後、メインウィンドウに戻るにはseleniumにコマンドを送る必要があります。これを達成するにはいくつかの方法がありますが、最も簡単な方法は親ウィンドウ(http://codeception.com/docs/modules/WebDriver#switchToWindow)に切り替えることです:

+0

ありがとう、アンリ。この問題は、ボタンをクリックした後にウィンドウが自動的に閉じられるため、上記のエラーが発生し、テストの実行がクラッシュすることです。私はそのエラー/テストのクラッシュを回避しようとしています。私は問題を簡単にここに再現可能にしました:http://stackoverflow.com/questions/42624417/codeception-closed-popup-breaks-selemium-test – tomolas

+0

他の人のために:問題はここで解決した:http://stackoverflow.com/questions/42624417/codeception-closed-popup-breaks-selemium-test?answertab = votes#tab-top – tomolas

関連する問題