如何在 Laravel Dusk 中手动注入 JQuery

How to Inject JQuery Manually in Laravel Dusk

我正在使用 require-js 来组织我的 JS 文件,并且由于我使用了带有定义模块的 jquery,Laravel Dusk 测试无法识别jquery 并且 returns 出现以下错误消息:

unknown error: $ is not a function
(Session info: chrome=70.0.3538.102)
(Driver info: chromedriver=2.43.600229 (3fae4d0cda5334b4f533bede5a4787f7b832d052),platform=Mac OS X 10.14.0 x86_64)

在我的 app.js 文件中,我这样使用 jquery:

define(["jquery"], function ($)
{
   // js codes...
});

现在,我如何手动将 jquery 注入 Laravel Dusk?

((我正在使用 Laravel 5.4 ))

谢谢。

经过一些调查,您可以使用 requirejs 版本在 Dusk 页面中执行 jquery 脚本。

例如隐藏一个元素:

public function someScript(Browser $browser, $selector)
{
    $selector = $browser->resolver->format($selector);

    $browser->script("requirejs(['jquery'], function($) { $(document).find(\"$selector\").hide(); });");
}