问题标签 [behat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1685 浏览

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

因此,我注意到 Java 能够使用 Selenium 2.25.0 附带的 UnexpectedAlertBehaviour 功能来处理意外警报。您可以看到CHANGELOG。始终接受警报并继续执行脚本对我很有帮助,因为我无法始终预测它们何时会弹出。

如果您使用 Drupal 的 ctools 和它的 ajax 框架进行了任何编码,您就会明白为什么...... Selenium 有时会太快而无法完成 ajax 调用,并且 ctools 会弹出一个对话框,解释为什么 ajax 调用没有完成的错误.

所以最后,是否有可能使用 webdriver 的 rest API(从哪个 mink 的 webdriver 驱动)来执行这个功能?有谁知道如何通过 mink 或 behat 使用 mink 设置它(通过 yaml 或 php 代码)?

0 投票
1 回答
3361 浏览

php - Behat & Mink : 使用测试环境

我目前正在使用 Behat 和 Mink & Goutte Driver。当我尝试通过文件(来自Symfony2app_dev.php标准版的典型文件)在我的开发环境中使用它时,我的测试工作得很好(要点)。app_dev.php

但是,如果我想使用一个app_test文件(与app_dev文件相同,除了环境参数设置为"test"而不是"dev",并且禁用调试模式),在注销场景中,Goutte 似乎可以'找不到“user_signup”标识符,并且在“登录”场景中,找不到“根”文本节点。事实上,当我使用 aprint last response时,似乎用户只是没有登录:我仍然看到登录用户的表单......

当我在我的开发环境(app_dev)或产品环境(app)上时,一切似乎都工作得很好……知道吗?

(如果您认为需要其他文件,请告诉我)。

0 投票
2 回答
1231 浏览

php - Zend 框架 2 行为

是否有一些关于如何使用 Zend Framework 2 配置 Behat 的教程或示例?我已经尝试了两天,但我无法弄清楚。

任何帮助,将不胜感激。我正在尝试使用 Zend Framework 2 进行 BDD。

编辑:

基本上,我在尝试通过 composer 安装 Behat 时遇到了问题。这是我的composer.json:

当我运行时:

我得到:

当我删除 behat 行时,composer json 文件工作正常。

编辑2:

我的临时解决方案:

0 投票
2 回答
1379 浏览

php - 如何在运行测试之前启动 PHP 内置 Web 服务器并在测试运行后关闭它

我正在尝试使用 Behat 进行 BDD 测试。在 Jenkins 上运行构建时,我希望 Behat 在 Web 服务器中打开 PHP 构建,然后在运行测试后将其关闭。怎么做?

基本上我需要运行:

在我的 BDD 测试中,我尝试过:

但是当运行 Behat 时,它会卡住而没有任何消息。

0 投票
1 回答
2103 浏览

automated-tests - 如何在具有不同环境(因此不同的 URL)的同一测试中使用 behat 两个站点进行测试

我正在使用 Behat 和 Mink 来测试几个站点。其中两个使用单点登录,所以我的一个测试包括登录一个站点,转到第二个站点并检查我是否已登录。

这是通过以下行为代码完成的:

这行得通,但问题是这一行:

我们有不同的环境(本地开发者、开发者、暂存)和不同的 URL,所以我无法编写适用于每台机器的测试。第一台服务器没问题,因为我可以为每台机器设置不同的 base_url 设置,但是我找不到将第二台服务器设置为常规设置的方法,而不是重写每个功能文件来更改第二台服务器的 URL。

有什么方法可以声明变量、常量或可以存储在每台机器不同的文件中的东西吗?

0 投票
4 回答
7789 浏览

behat - 我可以让 Behat/ZombieJS/Mink 模拟单击​​“非链接”元素以触发 JS 侦听器吗?

我正在使用Behat进行测试,使用ZombieJS驱动程序,到目前为止一切都运行良好,但是有一件事情让我感到困扰,我似乎无法弄清楚如何让 Behat 模拟点击非链接元素。我猜这是因为 Mink 是一个“跨浏览器”驱动程序,点击非链接元素并没有什么意义。不过,对于我的用例,我需要它,因为页面上有几个元素附加了 javascript 事件侦听器,我想测试这些功能。

我尝试使用

但它失败并出现预期的错误:

因为它不是链接元素。Behat 中也有类似的步骤:

我按“button.class”

但这仅适用于按钮。

有没有办法让 Behat 点击不是标签的元素?

0 投票
1 回答
583 浏览

php - 如果未使用 Behat/Mink 启用 JavaScript,则测试警告

我有一个简单的场景:

我将如何用 mink 实现 when 部分?有没有比仅仅测试 noscript 元素更优雅的方法?

到目前为止我的解决方案:

谢谢你的帮助!

0 投票
2 回答
1327 浏览

php - Zend Framework 2 - Composer - Behat / Guzzle Conflict

这是我的 composer.json 文件:

当我做:

我得到:

使用包信息加载作曲家存储库更新依赖项您的需求无法解析为可安装的包集。

几天前没有发生这种情况,我已经使用这个 composer.json 文件几个星期了,它总是安装好。

0 投票
1 回答
1279 浏览

dns - Behat + Mink 不适用于代理(DNS 无法解析域名)

我有一个简单的Behat功能,它使用 Mink 来测试 webapp 是哪个域,比如说(我的文件中http://myapp.localhost有一条记录)。127.0.0.1 myapp.localhosthosts

问题是,当我运行该功能时,Mink 驱动程序在浏览到应用程序中的任何 URL(例如,使用When I go to "/some/url"step)时得到的所有内容都是来自代理服务器的错误页面,表示myapp.localhost无法解析域。代理服务器地址由 env 设置。变量:export http_proxy=...

外部网站运行良好(例如Behat docs中的 Wikipedia 示例)。

我的浏览器可以访问该应用程序,因为有一个设置告诉浏览器在域为*.localhost.

如何强制 Mink 忽略代理?

今天花了一个小时来解决这个问题。

0 投票
5 回答
4473 浏览

symfony - 检查 Behat Mink 场景中的单选按钮状态?

如果选中了给定的单选按钮,我需要在输出中查看。我应该使用什么样的定义?我在谷歌上搜索了很多,但没有找到解决方案(这可能就在我面前,因为有人可能会向我保证)。