1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ブラウザテストで「Facebook\WebDriver\Exception\InvalidSessionIdException: invalid session id」docker+selenium+ChromeDriver+dusk(laravel)

Posted at

invalid session id

laravelのDuskを利用して長~いLPのスクリーンショットを撮ろうとしたら、Facebook\WebDriver\Exception\InvalidSessionIdException: invalid session id エラーになりました。

1) Tests\Browser\ScreenShotTest::testSc
Facebook\WebDriver\Exception\InvalidSessionIdException: invalid session id

/var/www/html/vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.php:107
/var/www/html/vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:372
/var/www/html/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:585
/var/www/html/vendor/php-webdriver/webdriver/lib/Remote/RemoteExecuteMethod.php:27
/var/www/html/vendor/php-webdriver/webdriver/lib/WebDriverOptions.php:166
/var/www/html/vendor/laravel/dusk/src/Browser.php:408
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:164
/var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php:242
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:165
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:81
/var/www/html/tests/Browser/AspLp/ScreenShotTest.php:55

Caused by
Facebook\WebDriver\Exception\UnknownErrorException: unknown error: session deleted because of page crash
from unknown error: cannot determine loading status
from tab crashed
  (Session info: headless chrome=98.0.4758.102)

/var/www/html/vendor/php-webdriver/webdriver/lib/Exception/WebDriverException.php:139
/var/www/html/vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:372
/var/www/html/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:585
/var/www/html/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:367
/var/www/html/vendor/laravel/dusk/src/Browser.php:394
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:149
/var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php:242
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:150
/var/www/html/vendor/laravel/dusk/src/Concerns/ProvidesBrowser.php:71
/var/www/html/tests/Browser/AspLp/ScreenShotTest.php:55

試行錯誤

色々試して、
・ChromeDriverを利用しているので、ChromeOptionsでブラウザサイズを変更してみたり。 (こんなやつ--window-size=1280,720
・ChromeDriverのバージョンが合っていないとか調べるとでてくるので、バージョンを合わせようとしてみたり。
ですが効果なし。

こちらで議論されていて、解決していないっぽい。。
https://groups.google.com/g/chromedriver-users/c/Z_CaHJTJnLw

その後も試行錯誤、

小さい画面のスクリーンショットなら成功することと、

こちらのサイトを参考にしまして、
https://thecurve.io/dealing-with-cryptic-seleniumwebdrivererrorinvalidsessioniderror-errors/

共有メモリが足りていないことだとあたりを付けて、docker-compose.ymlに以下を追加。

version : "3"

services:
  selenium:
    shm_size: '2gb' # 追加
    ...

これが成功しました!

追加前のseleniumコンテナのメモリをモニター

だいたい674MBがピークでその後テストはエラーになってました。
01.gif

追加後のseleniumコンテナのメモリをモニター

2.1GBになって、やばっ!と思ったのですが、なんとか成功したようです。
もう少し増やしてみてもいいかも。
02.gif

無事に、長~いLPのスクリーンショットが撮れました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?