이 오류 메시지는 ...
org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
... 크롬 드라이버 가 새로운 웹 브라우저 ( 예 : 크롬 브라우저 세션) 를 시작하거나 생성 할 수 없음을 의미합니다 .
코드 시험판과 모든 바이너리의 버전 정보는 무엇이 잘못되었는지에 대한 힌트를 주었을 것입니다.
그러나 기본 실행 플래그 에 대한 Add --disable-dev-shm-usage에 따르면 인수 --disable-dev-shm-usage
를 추가 하면 일시적으로 문제가 해결되는 것으로 보입니다 .
새 Chrome 브라우저 세션 을 시작 / 스팬 하려면 다음 솔루션을 사용할 수 있습니다.
System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized"); // open Browser in maximized mode
options.addArguments("disable-infobars"); // disabling infobars
options.addArguments("--disable-extensions"); // disabling extensions
options.addArguments("--disable-gpu"); // applicable to windows os only
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("--no-sandbox"); // Bypass OS security model
WebDriver driver = new ChromeDriver(options);
driver.get("https://google.com");
disable-dev-shm-usage
당으로 base_switches.cc disable-dev-shm-usage
에서만 유효한 것으로 보인다 리눅스 OS :
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
// The /dev/shm partition is too small in certain VM environments, causing
// Chrome to fail or crash (see http://crbug.com/715363). Use this flag to
// work-around this issue (a temporary directory will always be used to create
// anonymous shared memory files).
const char kDisableDevShmUsage[] = "disable-dev-shm-usage";
#endif
토론 에서 / dev / shm 대신 / tmp를 사용하는 옵션 추가 David는 다음과 같이 언급합니다.
/ dev / shm 및 / tmp가 어떻게 마운트되는지에 달려 있다고 생각합니다. 둘 다 tmpfs로 마운트되면 아무런 차이가 없다고 가정합니다. 어떤 이유로 / tmp가 tmpfs로 매핑되지 않은 경우 (기본적으로 systemd에서 기본적으로 tmpfs로 매핑 된 것으로 생각됨) Chrome 공유 메모리 관리는 익명의 공유 파일을 만들 때 항상 파일을 메모리에 매핑하므로이 경우에도 많은 차이가 있습니다. 플래그를 사용하여 원격 측정 테스트를 강제로 수행하고 어떻게 진행되는지 볼 수 있습니다.
기본적으로 사용하지 않는 이유는 공유 메모리 팀에 의해 밀려 난 것입니다. 기본적으로 공유 메모리에 / dev / shm을 사용해야한다는 것이 합리적이라고 생각합니다.
궁극적 으로이 모든 것이 memfd_create를 사용하도록 옮겨야하지만 Chrome 메모리 관리를 크게 리팩토링해야하기 때문에 곧 일어날 것이라고 생각하지 않습니다.
아우트로
다음은 샌드 박스 스토리에 대한 링크 입니다.