Я пытаюсь запустить тесты Selenium / testNg на Chrome без головы на компьютере с Windows 2008 R2.Я использую библиотеку WebDriverManager от Bonigarcia (https://github.com/bonigarcia/webdrivermanager), чтобы, надеюсь, сделать это независимым от любой версии Chrome, используемой машиной.
Мой код для создания экземпляра chromedriver выглядит следующим образом:
WebDriverManager.chromedriver().setup();
// webDriver = new ChromeDriver();
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
options.addArguments("--disable-gpu");
webDriver = new ChromeDriver(options);
Проблема, с которой я столкнулся, заключается в том, что Chromedriver сообщает мне, что файл DevToolsActivePort не существует. По рекомендации Google по адресу https://bugs.chromium.org/p/chromedriver/issues/detail?id=2483&can=2&start=0&num=100&q=&colspec=ID%20Status%20Pri%20Owner%20Summary&groupby=&sort=, Я использовал ProcMon, чтобы выяснить, что происходит не так.
Что я обнаружил, так это то, что Chrome фактически создает файл DevToolsActivePort в папке Temp внутри папки System32, в то время как Chromedriver проверяет файл в папке Temp внутри папки SysWow64.является 64-битной версией (и даже не имеет 32-битной версии больше, чем пару версий назад), и ChromeDriver имеет только 32-битную версию, которая должна работать как с 32-, так и с 64-битной версиями Chrome, они эффективнопроверка разных папок Temp для одного файла, что означает, что они не могут найти each other.
Помимо установки 32-битной версии Chrome, есть ли способ сделать так, чтобы они оба проверяли правильную папку?