2017-02-22 67 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