Codeception + selenium,自动关闭窗口导致错误

时间:2017-02-22 09:45:21

标签: php selenium selenium-webdriver codeception

我正在使用带有webdriver / selenium的代码识别2.2.9来测试支付流程。

这是互动概述:

  • 用户在我们的网站上下订单
  • 选择支付提供商后,将打开一个新的窗口,其中包含支付提供商网站(由支付提供商控制)
  • 用户在付款提供商网站上填写其付款详情
  • 点击付款提供商网站的最后一个按钮会导致窗口关闭(这就是问题所在)
  • 我们在后台获得确认表格付款提供商
  • 用户正被带回我们的网站

一切正常,除非支付提供商将窗口自动关闭作为流程的最后一步。我在selenium服务器中收到警告:

  

警告 - 例外:找不到窗口。浏览器窗口可能已关闭。

并且代码输出中出现错误:

  

[实\的webdriver \异常\ NoSuchWindowException]   找不到窗口。浏览器窗口可能已关闭。

付款提供商窗口自动打开后,我就这样切换到它:

$I->switchToNextTab();

问题是由于点击付款提供商网站上的“确认”按钮导致窗口自动关闭,如下所示:

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

我能做些什么来防止这个错误吗? 有没有办法让窗户关闭?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

关闭打开的浏览器窗口后,您应该命令selenium切换回主窗口。有几种方法可以实现这一点,最简单的方法是切换到父窗口(http://codeception.com/docs/modules/WebDriver#switchToWindow):

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