Laravel Dusk: unknown error: call function result missing 'value'

Laravel Dusk: unknown error: call function result missing 'value'

我在使用 Laravel Dusk type() 和 value() 方法时遇到问题。我收到以下错误。

$ php artisan dusk --group=activation
Warning: TTY mode is not supported on Windows platform.
PHPUnit 5.7.27 by Sebastian Bergmann and contributors.


DevTools listening on ws://127.0.0.1:12599/devtools/browser/84028821-2ca1-4d26-b66c-4697d2302117
E                                                                   1 / 1 (100%)

Time: 13,35 seconds, Memory: 18,00MB

There was 1 error:

1) Tests\Browser\CounselorActivationTest::testActivationWithSubscriptionWithPasswordLogin
Facebook\WebDriver\Exception\UnknownServerException: unknown error: call function result missing 'value'
  (Session info: chrome=68.0.3440.84)
  (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.17134 x86_64)

D:\devYubu\yubu\vendor\facebook\webdriver\lib\Exception\WebDriverException.php:114
D:\devYubu\yubu\vendor\facebook\webdriver\lib\Remote\HttpCommandExecutor.php:326
D:\devYubu\yubu\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php:547
D:\devYubu\yubu\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php:308
D:\devYubu\yubu\vendor\laravel\dusk\src\Concerns\InteractsWithElements.php:97
D:\devYubu\yubu\tests\Browser\tests\userActivation\CounselorActivationTest.php:58
D:\devYubu\yubu\vendor\laravel\dusk\src\TestCase.php:91
D:\devYubu\yubu\tests\Browser\tests\userActivation\CounselorActivationTest.php:95

ERRORS!
Tests: 1, Assertions: 0, Errors: 1.

我使用了 2 次值方法,我可以看到第一次确实填写了表格,但是第二次失败了..

->value('input[name=external_id]', $counselor->getAttribute(User::COLUMN_EXTERNAL_ID))
->value('input[name=name_full]', $counselor->getAttribute(User::COLUMN_NAME_FULL))

当我使用 type() 时,第一个也失败了:

->type('external_id', $counselor->getAttribute(User::COLUMN_EXTERNAL_ID))
->type('name_full', $counselor->getAttribute(User::COLUMN_NAME_FULL))

正在使用 Windows 10。我 运行 Dusk on Windows(我安装了 PHP 7.2)。我的应用程序在 PHP 7.0 的 Homestead 上运行。我正在使用 Laravel 5.4

这是过时的 ChromeDriver 的问题。

非常感谢 Jonas Staudenmeir,他创建了一个用于更新您的 Chromedriver 的包:

https://github.com/staudenmeir/dusk-updater

我附和@Martijn Ihhoff。获取 staudenmeir 更新程序 - https://github.com/staudenmeir/dusk-updater

下载并 运行 它(按照上面链接页面上的说明进行操作)之后,一定要杀死旧的 ChromeDriver。这是我的做法:

运行 ps -aux 然后找到以 /vendor/laravel/dusk/bin/chromedriver-linux 结尾的进程,该行左侧的第二个参数将是 PID (进程 ID)复制它(以及 运行ning chromeDrivers 的任何其他 PID),然后通过 运行ning kill ##### 杀死每个 PID,其中 ##### 是复制的 PID。一旦所有进程都被杀死,re-run dusk.