如何使用phantomjs + behat + mink处理确认弹出窗口

Ben*_*cki 5 symfony phantomjs behat travis-ci mink

在我的测试中,我使用此步骤确认javascript确认弹出窗口:

/**
 * @when /^(?:|I )confirm the popup$/
 */
public function confirmPopup()
{
    $this->getSession()->getDriver()->getWebDriverSession()->accept_alert();
}
Run Code Online (Sandbox Code Playgroud)

这一步适用于selenium2和chrome/firefox,但不适用于phantomjs.

如何使用phantomjs处理确认弹出窗口?

信息:

  • symfony:2.0.23
  • 那是:2.4.6
  • 水貂:1.5.0
  • Symfony2Extension:1.0.2
  • MinkExtension:1.1.4
  • MinkBrowserKitDriver:1.1.0
  • MinkSelenium2Driver:1.1.0
  • phamtomjs 1.9.1

behat.yml

default:
    extensions:
        Behat\Symfony2Extension\Extension:
            mink_driver: true
        Behat\MinkExtension\Extension:
            base_url: "http://localhost:8000/app_test.php"
            default_session: selenium2
            selenium2:
                wd_host: "http://localhost:9876/wd/hub"
Run Code Online (Sandbox Code Playgroud)

谢谢!

PS:这里的要点:https://gist.github.com/blazarecki/2888851

vij*_*jar 0

我用以下内容更新了“Selenium2Driver.php”:

public function acceptAlert()
{
$this->wdSession->accept_alert();
}
Run Code Online (Sandbox Code Playgroud)

这使得accept_alert()可供驱动程序使用。

因此,在脚本中,您可以执行此操作来接受警报。

$this->getSession()->getDriver()->acceptAlert();

请注意,我使用的是 RawMinkContext 而不是本机 MinkContext