Я использую селен для некоторой автоматизации браузера. Мне нужно установить расширение в браузере для моей работы. Я делаю это следующим образом:
import selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
executable_path = "/usr/bin/chromedriver"
options = Options()
options.add_extension('/home/TheRookie/Downloads/extensionSamples/abhcfceiempjmchhhdhbnkbimnfpckgl.crx')
browser = webdriver.Chrome(executable_path=executable_path, chrome_options=options)
Браузер запускается нормально, но появляется всплывающее окно, подтверждающее, что я хочу добавить расширение, следующим образом:
и после того, как я получаю это всплывающее окно, Python вскоре возвращается со следующим исключением:
selenium.common.exceptions.WebDriverException: Сообщение: неизвестная ошибка: не удалось дождаться загрузки фоновой страницы расширения: chrome-extension://abhcfceiempjmchhhdhbnkbimnfpckgl/toolbar.html\nиз неизвестной ошибки: страница не найдена: chrome-extension ://abhcfceiempjmchhhdhbnkbimnfpckgl/toolbar.html\n (информация о драйвере: chromedriver=2.12.301324 (de8ab311bc9374d0ade71f7c167bad61848c7c48),platform=Linux 3.13.0-39-generic x86_64)'
Я попытался обработать всплывающее окно как обычное предупреждение JavaScript, используя следующий код:
alert = browser.switch_to_alert()
alert.accept()
Однако это не помогает. Может ли кто-нибудь сказать мне, как мне установить это расширение без всплывающего окна или способ принять всплывающее окно? Любая помощь будет принята с благодарностью. Спасибо!
developerPrivate
... Похищает ID из белого списка.. ХААААААХ! ;) 23.02.2015webdriver.Remote
и можете привести пример? Я используюwebdriver.Remote
для подключения к удаленному браузеру Chrome. И как мне установить вспомогательные расширения в удаленном браузере? 23.02.2015add_extension
с zip-файлом, как показано здесь: github.com/Rob--W/testing-chrome.webstore.install/commit/. Вспомогательное приложение/расширение загружается нормально, но ЕСЛИ ваше расширение содержит фоновую страницу, оно не работает, потому что ChromeDriver ожидает загрузки фоновой страницы. Способ решить эту проблему — скопировать файлы zip/crx в фиксированное место на удаленном хосте и указать пути вload-extension=path/to/helper,path/to/helper-app,path/to/extension/etc
. 23.02.2015