我想在出现时确认弹出窗口。 这是功能文件:
And I wait 10 seconds Then I confirm the popup
和FeatureContext文件:
<?php
use Behat\Behat\Context\Context;
use Behat\Behat\Context\SnippetAcceptingContext;
use Behat\Gherkin\Node\PyStringNode;
use Behat\Gherkin\Node\TableNode;
use Behat\MinkExtension\Context\MinkContext;
use Behat\Mink\Driver\Selenium2Driver;
class FeatureContext extends MinkContext {
/**
* @when /^(?:|I )confirm the popup$/
*/
public function confirmPopup() {
$this->getSession()->getDriver()->getWebDriverSession()->accept_alert();
}
}
但它不起作用。它显示以下错误: Error Image
答案 0 :(得分:1)
假设您使用的是Behat 3,则可以在扩展Page
对象的任何上下文中添加此步骤。
public function iConfirmThePopup()
{
$this->getDriver()->getWebDriverSession()->accept_alert();
}
如果弹出窗口中有任何延迟,您可以在调用接受警报方法之前在方法中添加sleep(1);
。
此代码适用于警报类型,如果pop-p不是警报,那么您需要定期点击确定/确认按钮。
答案 1 :(得分:-2)
您可以使用:
/**
* @when /^(?:|I )confirm the popup$/
*/
public function confirmPopup()
{
$this->getSession()->getDriver()->getWebDriverSession()->accept_alert();
}
我找到了这个文件,非常方便:
https://gist.github.com/blazarecki/2888851
此文件包含如何处理所有弹出窗口