Когда вы выполняете свой код каждый раз, когда создается новый экземпляр ChromeDriver , который порождает новый сеанс Chrome Browser .Эта функциональность в соответствии с дизайном .
Лучшим подходом было бы вызвать driver.quit()
в методе tearDown(){}
, чтобы закрыть и уничтожить оба WebDriver и экземпляры веб-браузера изящно после каждого запуска Выполнение теста .Вы можете найти подробное обсуждение здесь .
Хотя это решило бы проблему с несколькими Браузерами Chrome Windows, но вы не будете залогинены в рамках вашей новой сессии.Чтобы войти в систему, вам нужно использовать определенный профиль Chrome , хранить куки и использовать их позже.Подробное обсуждение того, как создать и открыть новый профиль Chrome , можно найти в этом обсуждении .
Чтобы использовать расширение , которое выПосле установки вам необходимо упаковать / распаковать их и использовать класс ChromeOptions
.
Расширения Chrome могут быть упакованы или распакованы.Упакованные расширения представляют собой один файл с расширением .crx.Распакованные расширения - это каталог, содержащий расширение, включая файл manifest.json
.
Чтобы упаковать распакованное расширение, используйте кнопку Pack в chrome://extensions
или используйте Chrome (пример Windows):
chrome.exe --pack-extension=C:\path\to\unpacked\extension --pack-extension-key=C:\myext.pem
См. документацию по расширениям , чтобы найти другие способы сделать это более удобными для автоматизации.Чтобы распаковать упакованное расширение, просто разархивируйте файл (вам может потребоваться переименовать файл с .crx
на .zip
, чтобы утилита zip могла его распознать).
Использование расширений через ChromeDriver
Упаковано (файл .crx):
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
WebDriver driver = new ChromeDriver(options);
Распаковано (каталог):
ChromeOptions options = new ChromeOptions();
options.addArguments("load-extension=/path/to/extension");
WebDriver driver = new ChromeDriver(options);