问题标签 [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.
php - 使用 Behat/Mink 时出现类型错误
以下代码的执行:
产生错误消息:
在参照:
这段代码以前工作得很好。有任何想法吗
上下文:这是 Behat/Mink 功能的一部分
kohana - behat + mink 的问题
我正在尝试安装 behat + mink(在 kohana 框架上,而不是 symfony 上,我将 behat 放入模块文件夹中 - 我写这个以防万一,但我想这不是导致我的问题的原因)。
我拥有与 behat 文档中相同的 search.feature 文件,我将 features/bootstrap 类更改为:
当我在 CLI 中键入“behat”时,我收到以下错误:在第 80 行的 .....RawMinkContext.php 中的非对象上调用成员函数 getSession()。
我在某处读到它是导致此错误的 behat.yml 文件。我认为正确的做法是在已安装的 behat 文件夹的根目录中创建新的 behat.yml 文件并将此代码放入其中:
但是当然它给了我同样的错误。我尝试了很多配置:仅复制扩展部分,将默认值更改为上下文,将相同的内容复制到其他三个 behat.yml 文件(vendor/behat/behat、vendor/behat/monk 和 vendor/behat/monk -意图) - 没有工作。
有人能告诉我设置这个的正确方法是什么吗?也许这里的某人也有这个问题......
顺便提一句。当我安装 behat withough goutte 时,仅使用 selenium2 驱动程序,我收到未安装 goutte 的错误。但是当我用 goutte 安装它时,我收到了没有 fabpot/goutte 目录(或 fapbot/,我不记得了,但我想这是第一个 :D)的错误,所以我删除了所有内容并重新安装了 behat下面的 composer.json 文件,也许这也与这个错误有关:
selenium - Mink:在@BeforeStep 中等待页面加载
我想在依赖于 jQuery 的 @BeforeStep 钩子中的页面上执行一些 javascript。但是当时没有定义jQuery,实际上页面是空白的。
这是我想要实现的目标:
我想也许我可以等待页面首先加载 jQuery(注释行),但事实并非如此。似乎在处理该钩子之前执行已停止。
在 behat/mink 生态系统中,在页面上执行 javascript 的正确位置是什么?
windows-7 - 如何在 Windows 7 64 位中安装 behat 和 mink 驱动程序?
我正在尝试使用http://mink.behat.org/上的说明设置 mink 以使用 behat 。正如您将看到的,大约 2 个屏幕下方告诉我们 mink 已安装但没有驱动程序。我认为这意味着它不能与任何东西交谈。
然后它为新手提供了一个 composer.json 文件。我试过了,当我跑的时候
这就是我得到的。
我曾尝试将最低稳定性调整为 dev,但这并没有帮助。
我在 Windows 7、64 位下运行 - 我必须做很多调整才能安装 bhat 和 mink。我确实认为他们有 - 它的驱动器没有。
感激地收到帮助。伊恩
behat - Behat 2.4 升级问题,或“behat”下无法识别的选项“extensions” - 尝试通过 behat.yml 激活 sahi 扩展时出错
Behat 的东西相当新,我遇到了一个我似乎无法绕过的障碍。我一直在盯着文档,在谷歌上搜索就像这是我的工作,并尽我所能避免把我的电脑从防火梯上扔掉。
我正在处理一个相当复杂的项目,而我不是设置它的人。所以我在某些方面有点迷茫。
目前,我正在尝试使用 Sahi 驱动程序,因为 selenium 并没有为我需要测试的一些动态形式削减它。我可以使用默认的 selenium 驱动程序很好地运行测试,但测试失败,因为它没有充分触发表单输入上的 JavaScript 事件。具体来说,它将与该链接中涵盖的解决方法一起使用,但前提是我将浏览器放在焦点上。这意味着当测试在酱汁中或通过 jenkins 与 xvfb 运行时,它会失败。
我解释这一切只是因为这是我的更大问题,我试图通过使用 Sahi 驱动程序来解决这个问题。这让我想到:
这就是我尝试按照文档所说的方式为我的 bahat.yml 中的特定配置文件激活 Sahi 驱动程序时得到的结果。
这是默认配置文件和我当前在我的 behat.yml 中使用的配置文件(稍作修改以供公众使用):
Fwiw,测试在一个 vm 上,我 ssh -X 进入,然后使用运行测试
当我使用默认的 selenium 驱动程序和 @javascript 标签时,浏览器会弹出并且测试运行并通过(当然,假设我保持浏览器处于焦点)。
我使用 composer 安装了额外的驱动程序:
我已经添加use Behat\Mink\Driver\SahiDriver;
到我的 MinkContext.php、EnvironmentContext.php 和 FeatureContext.php,虽然我猜这可能是矫枉过正或没有必要。不过,在这一点上似乎没有什么不同。无论有没有它,我都会遇到同样的错误。
我还添加了一个sahi.php
位于 features/bootstrap/mink 中的:
exensions
我想也许出于某种原因在 features/bootstrap 中添加一个目录可能会有所帮助。甚至在其中插入了一个名为sahi.php
. 那没有多大帮助。
我认为这涵盖了一切。提前感谢您的帮助,如果其他地方对此有所帮助,请指导我,因为我已经花了无数个小时寻找并没有找到任何可以帮助我的东西。
更新:
我按照此https://lestbddphp.wordpress.com/2012/08/31/behatcomposer/卸载了旧版本的 behat、mink 和 gherkin,并安装了 2.4 等
我一直在通过文档中的“从 Behat 2.3 迁移到 2.4”。(抱歉,不允许我发布更多链接,但它在 Behat 官方文档中。)
我的composer.json
:
我behat.yml
按照指示将文件移动到项目的根目录。我将我的default
个人资料更新为:
虽然我不完全确定这就是我需要的。只需按照文档中给出的示例进行即可。
我更新了我vendor/autoload.php
的替换require_once
为require
:
但我对此有点困惑,因为该文件与 docs 中的示例代码不同。如果我要在此处的文档中添加该行,而不是已经存在的内容,那么它只会加载自己。(我试过了。它吐了。)我是不是完全密集,还是这里的措辞令人困惑/误导?我做对了吗?
正如我之前提到的,我有 3 个上下文文件features/bootstrap
:
通过 cli 运行测试时,我将它传递--profile
给behat.yml
. 在几乎所有的配置文件中,FeatureContext
都使用了。
FeatureContext
然后得到EnvironmentContext
and MinkContext
,据我所知。所以,理论上,一切都应该在那里工作。
只是它不是。
在我添加所有 Symfony 的东西之前,我得到了这个:
这就是为什么我通过作曲家添加 Symfony 的东西。
还可能值得注意的是:当我忘记通过作曲家安装 Symfony 的东西之前给它传递一个 --profile 时,我得到了这个:
我想这是可以预料的。
所以我现在很茫然。想法?
我将继续努力,看看我是否能弄清楚,但任何想法/输入将不胜感激。
再次更新:
从 yml 中删除扩展部分给了我这个:
behat.yml 的当前状态:
symfony - Behat、mink 和 goutte:当前 URI 必须是绝对 URL
我在 Behat 和 Mink 方面遇到了一些问题。使用的驱动程序是 Goutte。我正在尝试测试我的 Symfony 2.1 应用程序。
我的behat.yml:
我的test.feature:
当我尝试执行测试时(在 Windows 7 上):
测试停止于
然后我按“_submit”
出现此错误:
我已经尝试了几乎所有可能的 base_url 路径,但我没有设法让它工作。
你知道如何解决这个问题吗?
我尝试提交的表格:
php - 如何在 behat 中激活 mink
我正在尝试一起使用 behat 和 mink,阅读该链接:
http://docs.behat.org/cookbook/behat_and_mink.html#method-1-composer
并尝试在 Behat 框架中激活 Mink,但它对我不起作用:(
这是文本表格手册
我在想他在说什么
/vendor/behat/mink-extension/behat.yml
?
我已将这些行添加到该文件中
但是当我在做的时候,$bin/behat -dl
我只能看到
似乎 mink-extension 没有激活......但是我如何激活它,如果我做了手册中写的一切:(
PS我只是试图在全新的干净地方(新文件夹)中按照说明(从这里http://docs.behat.org/cookbook/behat_and_mink.html),但它不起作用它向我显示下一个错误
但是在教程中没有提到路径和 yml 修改 :( 也许是否存在任何更新的教程版本?
根据错误消息,我必须在 bootstrap 文件夹中创建一些 php 文件,但教程中没有描述 :( 奇怪
解决了:
最后它现在可以工作了:)谢谢
behat - 步骤 url 应与 Behat 匹配
我正在测试 Mink 的步骤:那么 url 应该匹配“pattern”
我的网址有点像“/test/34kUñlj”,这是一个 _blank 目标。这意味着当我点击一个链接时,它会打开一个新窗口,并且 URL 是“/test/34kUñlj”。
我正在使用sahi驱动程序。/test/ 之后的模式是随机散列。
第一个问题是:url应该匹配的步骤被标记为未定义。我查看了 Mink 的 api,发现这一步不是“”,所以我尝试了这个:然后 url 应该匹配 /test/ñljñl23并且仍然将其标记为未定义。
第二个:为什么我跟着打开的新窗口?
最后:该网址“/test/342lñasjf”的模式如何。我使用“/test/\d+”
谢谢
php - Behat Mink webdriver 会话在套件中的每个功能后都被销毁
我正在尝试使用 behat BDD 和 Mink 与 selenium webdriver for php 自动化 Sugarcrm 功能。我已经正确安装了它们,并且能够一起运行 behat 和 mink。例如检查登录到sugarcrm 作为一项功能。
现在的问题是当我创建两个功能文件时,分别是 login.feature 和 setup.feature。Behat 成功地在浏览器中自动执行登录过程,但一旦切换到需要从以前的功能维护登录会话的 setup.feature,它就会破坏会话并返回登录窗口。因此,第二个功能测试总是失败。
我如何为我的功能套件中的每个功能维护会话?
只是告诉你们,我也在一个功能文件中尝试过它们作为不同的场景,但没有运气,因为同样的事情正在发生
如果有人知道,请帮助我。
selenium - Mink 与 Selenium2:遵循所有重定向
如何在做一些断言之前强制 Selenium2 遵循所有重定向?
我想我可以简单地等待:
问题是无论我等待多久,我总是在“/auth”页面上结束,而不是“/main”。
更新:事实证明问题是神话般的,硒没有做任何特别的事情,并且浏览器默认情况下会像往常一样遵循重定向。在我的情况下,应该产生重定向的页面实际上是发送 200 响应。