问题标签 [mink]

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 回答
1065 浏览

web-scraping - 使用 Behat/Mink 时加载 GoutteClient 时出错

我正在尝试使用 Behat/Mink 来加载网站。

我使用 Composer 进行安装,这是我的 composer.json:

为了进行安装,我运行了以下命令:

一切安装顺利,没有任何错误消息。

这是我的 index.php 文件:

我尝试使用以下命令运行它:

但是我收到以下错误消息:

PHP 致命错误:在第 14 行的 index.php 中调用未定义函数 GotteClient()

指的是这一行:

安装是使用以下文档完成的:

http://mink.behat.org/

该示例是按照文档完成的:

https://github.com/Behat/Mink

关于我可能做错了什么的任何建议?

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 投票
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 投票
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 场景中的单选按钮状态?

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

0 投票
2 回答
614 浏览

behat - output_path 在 behat 2.4.0 中不起作用?

我在使用 HTML 格式化程序和输出路径时遇到问题。我正在使用cmd:

behat --format=html --out=output.html --config /www/config/behat.yml test.feature

简化的配置 ( behat.yml ) 如下所示:

问题是无论我设置什么 output_path,output.html总是放在同一个目录中,behat.yml (/www/config) 在哪里。谁能看到我做错了什么?非常感谢您的帮助!

更新Behat v 2.4.3 使用与当前目录相同的输出目录(与配置不同),但output_pathbehat.yml 中的参数似乎仍然不起作用。

0 投票
1 回答
1754 浏览

selenium - Behat / Mink / Selenium:可以拦截 AJAX 调用吗?

我正在使用 Behat/Mink 和 Selenium 进行验收测试。我需要确定我的网页是否通过 Ajax 对服务器进行格式错误的调用。问题是,服务器将尝试“纠正”格式错误的代码并返回有效数据。

有没有办法“拦截”和验证从我的网站发出的 ajax 调用?

现在我的 FeatureContext 类看起来像:

我想做类似的事情: