Могу ли я использовать расширения в Selenium с Chromedriver в режиме без головы? - PullRequest
0 голосов
/ 26 апреля 2020
def __get_chromedriver(self, use_proxy=False, user_agent=None):
    CHROMEDRIVER_PATH = os.environ.get('CHROMEDRIVER_PATH', '/usr/local/bin/chromedriver')
    GOOGLE_CHROME_BIN = os.environ.get('GOOGLE_CHROME_BIN', '/usr/bin/google-chrome-stable')

    chrome_options = webdriver.ChromeOptions()
    chrome_options.binary_location = GOOGLE_CHROME_BIN
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--disable-dev-shm-usage')
    chrome_options.add_argument('--disable-web-security')
    chrome_options.add_argument('--proxy-server=http://proxy-server.scraperapi.com:8001')
    chrome_options.add_argument("ignore-certificate-errors")

    chrome_options.add_argument('headless')

    if use_proxy:
        pluginfile = 'proxy_auth_plugin.zip'

        with zipfile.ZipFile(pluginfile, 'w') as zp:
            zp.writestr("manifest.json", manifest_json)
            zp.writestr("background.js", background_js)
        chrome_options.add_extension(pluginfile)
    if user_agent:
        chrome_options.add_argument('--user-agent=%s' % user_agent)


    driver = webdriver.Chrome(
        executable_path=CHROMEDRIVER_PATH,
        chrome_options=chrome_options)
    return driver

Когда я пытаюсь собрать драйвер, я получаю эту ошибку:

selenium.common.exceptions.WebDriverException: Message: unknown error: failed to wait for extension background page to load: chrome-extension://icbdedkkdagkbepbnchafmojcchonbmj/_generated_background_page.html
from unknown error: page could not be found: chrome-extension://icbdedkkdagkbepbnchafmojcchonbmj/_generated_background_page.html

Но если я комментирую chrome_options.add_argument('headless'), она работает нормально.

К сожалению, я хочу использовать Chromedriver с безголовым режимом, есть идеи?

1 Ответ

0 голосов
/ 26 апреля 2020
...