質問: tmpディレクトリを選択するヘッドレス/ no-sandbox-modeのchromeコマンドライン引数は何ですか? 私はseleniumでヘッドレスのクロムを実行しています。一連のセッションを実行すると、/tmpに多数のtmpファイルが作成されます。drwx------ 3 nick nick 4.0k jul 28 05:00 .org.chromium.chromium.opprkq drwx------ 3 nick nick 4.0k jul 29 00:00 .org.chromium.chromium.tawqzu drwx------ 3 nick nick 4.0k jul 29 00:00 .org.chromium.chromium.jiqqzu drwx------ 3 nick nick 4.0k jul 29 00:00 .org.chromium.chromium.7vce75 drwx------ 3 nick nick 4.0k jul 29 00:00 .org.chromium.chromium.r5itam drwx------ 3 nick nick 4.0k jul 29 00:00 .org.chromium.chromium.ewgdrv drwx------ 3 nick nick 4.0k jul 29 00:00 .org.chromium.chromium.8titam drwx------ 3 nick nick 4.0k jul 29 05:00 .org.chromium.chromium.aeuzcu drwx------ 3 nick nick 4.0k jul 29 05:00 .org.chromium.chromium.cbhew4 googleとはchromeコマンドラインスイッチこれらのディレクトリに別のパスを選択するように設定できますか?ルートディスクのクラウド上のディスク容量が少ないため、/tmpを使用できません。chromeプロセスのシャットダウン時にこれらのディレクトリを自動的に削除する方法はありますか? https://peter.sh/experiments/chromium-command-line-switches/ を参照してください
回答: うわー、これを見つけるのに長い時間がかかりました:これを行うコマンドライン引数はありません。しかし、環境変数は可能です。関連するchromedriverコードは次のとおりです。 https://chromium.googlesource.com/chromium/chromium/+/master/base/file_util_posix.cc #if !defined(os_macosx) bool gettempdir(filepath* path) { const char* tmp = getenv("tmpdir"); if (tmp) *path = filepath(tmp); else #if defined(os_android) return pathservice::get(base::dir_cache, path); #else *path = filepath("/tmp"); #endif return true; } したがって、linuxの場合、これを行うには、chromeセッションでtmpdir環境変数を設定するだけです。したがって、seleniumでは、次のことを行う必要があります。chromedriverservice chromedriverservice = new chromedriverservice.builder() .usingdriverexecutable(new file("driver_linux/chromedriver")) .usinganyfreeport() .withenvironment(immutablemap.of("tmpdir", "/some/other/tmp/dir")).build();