2017-02-22 73 views
0

我使用webdriver/selenium使用codeception 2.2.9測試付款流程流程。Codeception + selenium,自動關閉窗口導致錯誤

這是互動的概述:

  • 用戶對我們的網站他的命令
  • 選擇支付服務提供商後,新窗口打開與支付提供商的網站在它(這是由支付提供商控制)
  • 用戶填寫自己的付款細節上的支付服務提供商的網站
  • 在付款服務供應商網站上的最後一個按鈕點擊導致要關閉窗口(這是問題的所在)
  • 我們得到確認形式的支付服務提供商的背景
  • 用戶被帶回到我們的網站

一切工作正常,除了當窗口被自動關閉,通過支付提供商流的最後一步。我在硒服務器中發出警告:

警告 - 異常:未找到窗口。瀏覽器窗口可能已關閉。

和codeception輸出內的錯誤:

[實\的webdriver \異常\ NoSuchWindowException]未發現 窗口。瀏覽器窗口可能已關閉。

後付款服務供應商的窗口被自動打開,我切換到這樣的:

$I->switchToNextTab(); 

的問題可以通過點擊支付提供商站點「確認」按鈕,使窗口獲取引起自動關閉像這樣:

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

有什麼我可以做,以防止這個錯誤? 有沒有辦法期望窗戶關閉?

謝謝你的幫助!

回答

0

關閉打開的瀏覽器窗口後,您應該命令selenium切換回主窗口。有幾種方法可以實現這一點,最簡單的是切換到父窗口(http://codeception.com/docs/modules/WebDriver#switchToWindow):

# switch to parent window 
$I->switchToWindow(); 
+0

謝謝亨利。這樣做的問題是,當單擊按鈕後窗口會自動關閉,上面提到的錯誤就會發生並使測試執行崩潰。我試圖避免測試的錯誤/崩潰。我已經在這裏很容易重現這個問題:http://stackoverflow.com/questions/42624417/codeception-closed-popup-breaks-selemium-test – tomolas

+0

對於其他人:問題在這裏得到解決:http://stackoverflow.com /問題/ 42624417/codeception封閉,彈出式突破 - selemium測試?answertab =#投票製表頂部 – tomolas