web-dev-qa-db-fra.com

Définition d'un proxy pour le pilote Chrome dans Selenium

J'utilise Selenium Webdriver en C # pour l'automatisation dans le navigateur Chrome. Je dois vérifier si ma page Web est bloquée dans certaines régions (certaines plages d'adresses IP). Je dois donc définir un proxy dans mon navigateur Chrome. J'ai essayé le code ci-dessous. Le proxy est en cours d'établissement mais j'obtiens une erreur. Quelqu'un pourrait-il m'aider?.

        ChromeOptions options = new ChromeOptions();

        options.AddArguments("--proxy-server=XXX.XXX.XXX.XXX");

        IWebDriver Driver = new ChromeDriver(options);

        Driver.Navigate().GoToUrl("myUrlGoesHere");

Lorsque j'exécute ce code, le message suivant s'affiche dans mon navigateur Chrome: J'ai essayé d'activer l'option Proxy, mais l'option "Modifier les paramètres du proxy" est désactivée.

*Impossible de se connecter au serveur proxy

Un serveur proxy est un serveur qui sert d'intermédiaire entre votre ordinateur et d'autres serveurs. À l'heure actuelle, votre système est configuré pour utiliser un proxy, mais Google Chrome ne peut pas s'y connecter. Si vous utilisez un serveur proxy ... Vérifiez vos paramètres de proxy ou contactez votre administrateur réseau. pour vous assurer que le serveur proxy fonctionne. Si vous ne pensez pas que vous devriez utiliser un serveur proxy: Allez dans le menu Chrome> Paramètres> Afficher les paramètres avancés ...> Modifier les paramètres du proxy ...> Paramètres du réseau local et décochez "Utiliser un serveur proxy pour votre réseau local". Code d'erreur: ERR_PROXY_CONNECTION_FAILED *

9
Ajay S

J'utilise les paquets de nuget pour Selenium 2.50.1 avec ceci:

ChromeOptions options = new ChromeOptions();
proxy = new Proxy();
proxy.Kind = ProxyKind.Manual;
proxy.IsAutoDetect = false;
proxy.HttpProxy =
proxy.SslProxy = "127.0.0.1:3330";
options.Proxy = proxy;
options.AddArgument("ignore-certificate-errors");
var chromedriver = new ChromeDriver(options);
9
Bron Davies

Si votre proxy requiert une connexion utilisateur, vous pouvez définir le proxy avec les informations de connexion utilisateur/mot de passe comme suit:

options.AddArguments("--proxy-server=http://user:[email protected]:8080");
3
Surya

Veuillez suivre le code, cela vous aidera à changer le proxy

Commencez par créer une extension chrome et collez le code de script Java Suivant.

Code de script Java

var Global = {
    currentProxyAouth: {
        username: '',
        password: ''
    }
}

var userString = navigator.userAgent.split('$PC$');
if (userString.length > 1) {
    var credential = userString[1];
    var userInfo = credential.split(':');
    if (userInfo.length > 1) {
        Global.currentProxyAouth = {
            username: userInfo[0],
            password: userInfo[1]
        }
    }
}

chrome.webRequest.onAuthRequired.addListener(
    function(details, callbackFn) {
        console.log('onAuthRequired >>>: ', details, callbackFn);
        callbackFn({
            authCredentials: Global.currentProxyAouth
        });
    }, {
        urls: ["<all_urls>"]
    }, ["asyncBlocking"]);


chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        console.log('Background recieved a message: ', request);

        POPUP_PARAMS = {};
        if (request.command && requestHandler[request.command])
            requestHandler[request.command](request);
    }
);

Code C #

    var cService = ChromeDriverService.CreateDefaultService();
    cService.HideCommandPromptWindow = true;

    var options = new ChromeOptions();

    options.AddArguments("--proxy-server=" + "<< IP Address >>" + ":" + "<< Port Number >>");
    options.AddExtension(@"C:\My Folder\ProxyChanger.crx");

    options.Proxy = null;

    string userAgent = "<< User Agent Text >>";

    options.AddArgument($"--user-agent={userAgent}$PC${"<< User Name >>" + ":" + "<< Password >>"}");

    IWebDriver _webDriver = new ChromeDriver(cService, options);

    _webDriver.Navigate().GoToUrl("https://whatismyipaddress.com/");
1
Gehan Fernando