测试文件将在下面的随机测试用例上返回此错误消息,您可以在此处看到完整的错误消息
2) Tests\\Browser\\MedewerkerContactTest::testGeenBericht
Facebook\\WebDriver\\Exception\\InvalidSessionIdException: invalid session id
/var/www/vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.php:107
/var/www/vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:372
/var/www/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:585
/var/www/vendor/php-webdriver/webdriver/lib/Remote/RemoteExecuteMethod.php:27
/var/www/vendor/php-webdriver/webdriver/lib/WebDriverOptions.php:166
/var/www/vendor/laravel/dusk/src/Browser.php:408
/var/www/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:164
/var/www/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php:242
/var/www/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:165
/var/www/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:81
/var/www/tests/Browser/MedewerkerContactTest.php:65
Caused by
Facebook\\WebDriver\\Exception\\InvalidSessionIdException: invalid session id
/var/www/vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.php:107
/var/www/vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:372
/var/www/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:585
/var/www/vendor/php-webdriver/webdriver/lib/Remote/RemoteExecuteMethod.php:27
/var/www/vendor/php-webdriver/webdriver/lib/Remote/RemoteTargetLocator.php:35
/var/www/vendor/laravel/dusk/src/Browser.php:295
/var/www/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:144
/var/www/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php:242
/var/www/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:150
/var/www/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:71
/var/www/tests/Browser/MedewerkerContactTest.php:65
请帮助我 我使用 laravel 版本 8 并拥有最新的 chrome 驱动程序并使用 php 7 我尝试了很多东西,因为一开始我认为电脑规格有问题,并且由于内存不足而失败,并且我在很多地方都设置了等待功能。
当它工作时,最有可能的失败是它无法登录,我观看了失败png,似乎它忘记删除coockies,所以也可能存在错误 登录是一个自定义功能,如下所示
public function login(Browser $browser, string $role = 'klant_beheerder'): Browser
{
$browser->visit($this->url . '/')
->assertSee('Inloggen')
->type('#email', config('dusk.' . $role . '.login'))
->type('#password', config('dusk.' . $role . '.password'))
->press('.thm-tran-bg');
return $browser;
}
奇怪的是,其他测试确实可以像下面另一个文件中的这个测试一样工作
public function testProfiel(): void
{
$this->browse(function (Browser $browser) {
$this->login($browser)
->visit($this->url . '/home')
->assertSee('e2ebeheerder')
->click('#page-header-user-dropdown')
->clickLink('Profiel')
->assertSee('Profiel van e2ebeheerder')
->assertSee('Opslaan')
->screenshot('InloggenTest::testProfiel');
});
}
我尝试了很多方法来解决这个问题,其中大多数都是关于关闭会话并在测试之间删除coockies
我通过在 chromeOptions
使用
--disable-dev-shm-usage
解决了所有无效 id
在 Chrome 中,我没有分配足够的资源给我的 Docker 容器。在 Chrome 中添加“--disable-dev-shm-usage”标志修复了该问题。由于它使用本地 /tmp 而不是 /dev/shm,因此它有足够的空间。