Bu hata mesajı ...
org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
... ChromeDriver'ın yeni bir WebBrowser yani Chrome Tarayıcı oturumu başlatamadığını / oluşturamadığını belirtir .
Kod denemeleriniz ve tüm ikili dosyaların sürüm bilgileri bize neyin yanlış gittiğine dair bazı ipuçları verirdi.
Ancak, varsayılan başlatma bayraklarına Add --disable-dev-shm-use başına göre , argümanın eklenmesi --disable-dev-shm-usage
sorunu geçici olarak çözecektir.
Yeni bir Chrome Tarayıcı oturumu başlatmak / yaymak istiyorsanız aşağıdaki çözümü kullanabilirsiniz:
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");
devre dışı-dev-SHM-kullanımı
Base_switches.cc uyarınca disable-dev-shm-usage
sadece Linux işletim sisteminde geçerli gibi görünüyor :
#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
Tartışmada David / dev / shm yerine / tmp kullanma seçeneğini ekleyin :
Ben / dev / shm ve / tmp nasıl bağlı bağlıdır düşünüyorum. İkisi de tmpfs olarak monte edilmişlerse, hiçbir fark olmayacağını varsayıyorum. herhangi bir nedenle / tmp tmpfs olarak eşlenmezse (ve bence sistemd tarafından varsayılan olarak tmpfs olarak eşlenir), krom paylaşılan bellek yönetimi anonim paylaşılan dosyalar oluştururken dosyaları her zaman belleğe eşler, bu durumda bile çok fark. Sanırım bayrak etkinken telemetri testlerini zorlayabilir ve nasıl gittiğini görebilirsiniz.
Neden varsayılan olarak kullanılmıyorsa, paylaşılan bellek ekibi tarafından geri itildi, sanırım varsayılan olarak paylaşılan bellek için / dev / shm kullanması mantıklı.
Sonuçta tüm bunlar memfd_create kullanmak için hareket ediyor olmalı, ancak bunun Chrome bellek yönetimini önemli ölçüde yeniden düzenlemeyi gerektireceği için yakında olacağını düşünmüyorum.
Outro
İşte Sandbox hikayesinin bağlantısı .