执行以下代码:
<?php
class InheritedFeatureContext extends Behat\MinkExtension\Context\MinkContext
{
/**
*Simulates hovering over a link
*
* @When /^I mouse over "([^"]*)"$/
*/
public function iMouseOver($link)
{
$this->getSession()->getPage()->findLink($link)->mouseOver();
}
/**
*Waits for the appearence of a drop down
*
* @Then /^I wait for the suggestion box to appear$/
*/
public function iWaitForTheSuggestionBoxToAppear()
{
$this->getSession()->wait(5000, "$('.suggestions-results').children().length > 0");
}
}
产生错误msg:
TypeError: $ is not a function
参考:
$this->getSession()->wait(5000, "$('.suggestions-results').children().length > 0");
此代码以前工作得很好。任何想法
上下文:这是Behat / Mink功能的一部分
答案 0 :(得分:2)
你可能没有包含jQuery但是你在这里试图使用它:
$this->getSession()->wait(5000, "$('.suggestions-results').children().length > 0");
wait()方法接受javascript作为其第二个参数。它等待脚本评估为true(作为第一个参数传递的最大毫秒数)。
答案 1 :(得分:1)
如果我没错,这段代码来自网站上的貂皮示例。
该示例使用http://en.wikipedia.org/wiki作为基本URL,维基百科确实附带了jquery脚本。在您的情况下,如果它包含jquery,则检查您的URL位置
答案 2 :(得分:0)
很可能你没有包含jQuery。
如果您不想将jQuery添加到项目中以支持此Mink测试,请尝试将您的行更改为以下内容,这将完成相同的操作,但不使用jQuery:
$this->getSession()->wait(5000, "document.querySelector('.suggestions-results').children.length > 0");
答案 3 :(得分:-1)
这适用于我使用jQuery而不是$
快捷方式:
$this->getSession()->wait(5000, "jQuery('.suggestions-results').children().length > 0");