2013-05-13 3 views
7

У меня есть своеобразная проблема. Когда я открываю chromeBrowser через chromeDriver, расширения, которые были предварительно установлены, отсутствуют. Также расширение приложения удаляется из папки расширений (AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions).Расширения, установленные на браузере Chrome, отсутствуют, когда экземпляр браузера Chrome запущен с помощью Selenium chromDriver

Теперь, когда я открываю браузер Chrome вручную, расширение отображается в браузере, а также папка приложений в папке расширений (AppData \ Local \ Google \ Chrome \ User Data \ Default \ Extensions) no w появляется.

Ниже приведена версия хромированного ребра & браузер. chromedriver версия: 26.0.1383.0 хромборец: 26.0.1410.64

Пожалуйста, помогите нам в этом.

+0

Кому-то нужна дополнительная информация, чтобы помочь в этом ... ?? – navger

ответ

0

ChromeOptions варианты = новые ChromeOptions(); options.AddAdditionalCapability ("excludeSwitches", новый объект [] {"disable-default-apps"});
IWebDriver drv = новый ChromeDriver (опции);

Доступен из webdriver .net привязки 2.40 и далее.

+0

Даже с обновленным синтаксисом - он не работает для меня. 'Options.AddExcludedArgument ("отключить-умолчанию-приложения")' –

2

Если вы хотите иметь расширение, доступное во время тестирования, вам нужно запустить хром с профилем, который определяет это расширение, или предоставить расширение в качестве требуемого свойства для webdriver. Обычно, когда вы начинаете хром через webdriver, хром начинает каждый раз с нового профиля.

так что если вы хотите, чтобы загрузить расширение в тестовом хромом, сделайте следующее:

DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
capabilities.setCapability("chrome.switches", 
    Arrays.asList("--load-extension=/path/to/extension/directory")); 
WebDriver driver = new ChromeDriver(capabilities); 

Более подробную информацию по этому поводу можно найти here

+0

hi luksch .. !! Я попытался открыть хромированный револьвер с "--user-data = {путь к профилю}", но это тоже не работает. – navger

+0

Что не работает? есть ли сообщение об ошибке? вы смотрите здесь: http://www.chromium.org/user-experience/user-data-directory – luksch

6

Вы должны установить каждое расширение вы хотите использовать , В Selenium2 C# API это выглядит так:

var options = new ChromeOptions(); 
options.AddExtension(Path.GetFullPath("local/path/to/extension.crx")); 
var driver = new ChromeDriver(options); 

и расширение будет в браузере. Ссылка на java можно найти here. См. this question о том, как получить файл .crx для вашего расширения из хранилища chrome.

+0

Это не должен быть файл CRX, также принимаются почтовые файлы. API реализован как «Создайте новый профиль пользователя, распакуйте расширение и загрузите распакованное расширение». Тем не менее +1, потому что этот ответ более правильный, чем другой. –

+0

@RobW load CRX дает мне недостающую ошибку файла манифеста. Также как я могу получить пакет zip расширения? – MonsterMMORPG

4

этот ответ можно найти здесь https://sites.google.com/a/chromium.org/chromedriver/extensions. Расширения Chrome могут быть упакованы или распакованы. Упакованные расширения - это один файл с расширением .crx. Распакованные расширения - это каталог, содержащий расширение, включая файл manifest.json.

Чтобы упаковать распакованное расширение, используйте кнопку «Pack» в расширениях chrome: // или используйте Chrome: «chrome.exe --pack-extension = C: \ path \ to \ unpacked \ extension --pack-extension- ключ = C: \ myext.pem». См. Документацию по расширениям для других способов сделать это более дружественным к автоматизации. Чтобы распаковать упакованное расширение, просто разархивируйте файл (вам может потребоваться переименовать файл с .crx в .zip для вашей утилиты zip, чтобы его распознать). Установка расширений через ChromeDriver

Упакованный (.crx файл)

ChromeOptions options = new ChromeOptions(); 
options.addExtensions(new File("/path/to/extension.crx")); 
DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
ChromeDriver driver = new ChromeDriver(capabilities); 

Распакованный (каталог)

ChromeOptions options = new ChromeOptions(); 
options.addArguments("load-extension=/path/to/extension"); 
DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
ChromeDriver driver = new ChromeDriver(capabilities); 
Смежные вопросы