Javascript 在页面上重定向 -> 打开

Javascript redirects on page->open

使用 behat/mink,我正在测试 "remember me" 功能。从功能上讲,当用户访问主页时,javascript/ajax 代码会验证用户是否为 "remembered"。如果是,则 javascript 重定向到另一个页面。我的 LoginPage 是用 $path = '/login.html' 定义的 - 重定向后,我将在 /main.html.

上结束

在我的上下文中,我使用 $loginPage->open() - 但是这会引发异常 Expected to be on "https://example.com/login.html" but found "https://example.com/main.html" instead。当然,这会中止执行并导致测试失败 - 但这正是我想要的行为。

如何告诉 behat/mink 验证 URL 或忽略 URL 不匹配?

如果您检查 open() 方法,您会发现检查失败是在检查 verify() 方法中的 url 参数时。

如果您想避免这种情况,您可以覆盖此方法以仅检查响应而不检查 url 参数。

为此,您需要扩展 Page 并像这样声明一个新方法:

 public function verify(array $urlParameters){
    $this->verifyResponse();
}