Расширение Chrome для автоматического входа в систему не обходит базовую аутентификацию при добавлении через селен - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть код, который инициализирует селеновый веб-драйвер и открывает страницу Chrome для моего маршрутизатора.Маршрутизатор требует базовой http-аутентификации, которую селен не поддерживает.Мне удалось найти способ обойти эту аутентификацию с использованием расширения Chrome (см. Ниже)

The router login page

background.js

function callbackFn(details) {
return {
    authCredentials: {
        username: "user",
        password: "pass"
    }
};

}

chrome.webRequest.onAuthRequired.addListener(
        callbackFn,
        {urls: ["<all_urls>"]},
        ['blocking']
);

manifest.json

{
    "version": "1.0.0",
    "manifest_version": 2,
    "name": "Chrome Auto Login",
    "permissions": [
        "proxy",
        "tabs",
        "unlimitedStorage",
        "storage",
        "<all_urls>",
        "webRequest",
        "webRequestBlocking"
    ],
    "background": {
        "scripts": ["background.js"]
    },
    "minimum_chrome_version":"22.0.0"
}

Чтобы проверить эту функцию, я включил вышеуказанное расширение в Chrome.Я захожу на страницу моего роутера с аутентификацией, и он полностью обходит экран.Это здорово, так как мне больше не нужен селен для обработки этого процесса входа в систему.

Однако, когда я добавляю расширение через селен, я получаю совершенно другие результаты, и код не работает так же в автоматизированном Chrome, какон работает в стандартном Chrome.

    private class ChromeOptionsEx : ChromeOptions
    {
        public override ICapabilities ToCapabilities()
        {
            var r = (DesiredCapabilities)base.ToCapabilities();
            r.SetCapability("pageLoadStrategy", "none");

            AddExtension(@"ChromeAutoLoginExt.crx");
            return r;
        }
    }


ChromeOptionsEx opt = new ChromeOptionsEx();
m_Driver = new ChromeDriver(opt);

//extension appears but does not bypass router login
    m_Driver.Navigate().GoToUrl("chrome://extensions");

Расширение появляется и включается при запуске Chrome через селен, но оно не дает желаемых результатов.

Кто-нибудь может помочь?

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