Chromedriver проверяет другую папку Temp, чем Chrome помещает файл DevToolsActivePort из-за различий в 32/64 бита - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь запустить тесты 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, есть ли способ сделать так, чтобы они оба проверяли правильную папку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...