首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有没有办法使用mink的webdriver扩展和behat自动接受未处理的警报?

有没有办法使用mink的webdriver扩展和behat自动接受未处理的警报?
EN

Stack Overflow用户
提问于 2012-10-04 22:39:57
回答 2查看 1.7K关注 0票数 0

因此,我注意到Java能够使用Selenium 2.25.0提供的UnexpectedAlertBehaviour功能来处理意外的警报。您可以看到CHANGELOG。这将有助于我始终接受警报,并让脚本继续运行,因为我不能总是预测它们何时会弹出。

如果您使用过Drupal的ctools和ajax框架进行过任何编码,您就会理解为什么……Selenium有时速度太快,无法完成ajax调用,ctools会弹出一个对话框,解释为什么ajax调用没有完成的错误。

那么最后,是否有可能使用webdriver的rest API (mink的webdriver就是从rest API派生出来的)来执行此功能?有谁知道如何通过mink或behat使用mink设置它(通过yaml或php代码)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-08 12:28:35

您可以添加一些js,以便在使用此步骤定义运行功能时禁用警报

代码语言:javascript
代码运行次数:0
运行
复制
/**
 * @When /^I disable the alerts$/
 */
public function iDisableTheAlerts()
{
   $javascript = <<<JS
       window.alert = function() {}; 
   JS;       
   $this->getSession()->executeScript($javascript);
}

这实际上只需覆盖alert函数并执行null返回,以便任何js都能继续运行。

根据你的浏览器,你可能想尝试不同的方法来覆盖它,如果这不起作用。

你可以在你的应用程序中完全禁用提醒,而不是通过behat注入它,但这仍然会将提醒保留为某种类型的……咳嗽..。“设计所需的功能”。

票数 2
EN

Stack Overflow用户

发布于 2015-12-30 01:02:54

我正在使用Selenium for PHP,下面是我的工作解决方案:

代码语言:javascript
代码运行次数:0
运行
复制
try {
    // actions to open alert
} catch (UnexpectedAlertOpenException $e) {
    if ($i->isWebDriver()) {
        $i->executeInSelenium(function (\RemoteWebDriver $webDriver) {
            $webDriver->switchTo()->alert()->dismiss();
        });
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12729782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档