9

プロキシ サーバーが認証を必要とする場合、以下のコードでプロキシ サーバー パラメータを設定すると、FireFox は認証ダイアログを表示し、基本的に自動的に入力することはできません。とにかくUSERNAMEPASSWORDを設定する方法はありますか?

FirefoxProfile profile = new FirefoxProfile();
String PROXY = "192.168.1.100:8080";
OpenQA.Selenium.Proxy proxy = new OpenQA.Selenium.Proxy();
proxy.HttpProxy=PROXY;
proxy.FtpProxy=PROXY;
proxy.SslProxy=PROXY;
profile.SetProxyPreferences(proxy);
FirefoxDriver driver = new FirefoxDriver(profile);

プロキシ文字列をそのような形式にフォーマットしようとするとhttp://username:pass@192.168.1.1:8080 、文字列が無効であるというエラーが表示されます。だから、これを達成する方法がなければならないのだろうか。

どんな助けでも大歓迎です。

4

5 に答える 5

1
        String PROXY = "http://login:pass@proxy:port";
        ChromeOptions options = new ChromeOptions();

        options.AddArguments("user-data-dir=path/in/your/system");

        Proxy proxy = new Proxy();

        proxy.HttpProxy = PROXY;
        proxy.SslProxy  = PROXY;
        proxy.FtpProxy  = PROXY;

        options.Proxy = proxy;

        // Initialize the Chrome Driver
        using (var driver = new ChromeDriver(options))
于 2014-07-24T14:41:14.607 に答える
0

できることは、プロファイルを作成し、その中に認証データを保存することです。プロファイルが「webdriver」と呼ばれる場合、初期化時にコードから選択できます。

ProfilesIni allProfiles = new ProfilesIni(); 
FirefoxProfile profile = allProfiles.getProfile("WebDriver"); 
profile.setPreferences("foo.bar",23);
WebDriver driver = new FirefoxDriver(profile);
于 2013-01-12T03:20:21.817 に答える
0

AutoIt を使用せずに MS UI オートメーションで実行しました:

public void AuthInProxyWindow (string login, string pass)
    {
        var proxyWindow = AutomationElement.RootElement
            .FindFirst(TreeScope.Subtree,
                new PropertyCondition(AutomationElement.ClassNameProperty, "MozillaDialogClass"));

        var edits = proxyWindow.FindAll(TreeScope.Subtree,
            new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit));

        var unamePoint = edits[1].GetClickablePoint();
        Mouse.MoveTo(new Point((int) unamePoint.X, (int) unamePoint.Y));
        Mouse.Click(MouseButton.Left);

        SendKeys.SendWait(login);
        var pwdPoint = edits[2].GetClickablePoint();
        Mouse.MoveTo(new Point((int) pwdPoint.X, (int) pwdPoint.Y));
        Mouse.Click(MouseButton.Left);
        SendKeys.SendWait(pass);

        Keyboard.Press(Key.Return);
        Logger.Debug("Authefication in Firefox completed succesfully");
    }

Microsoft.TestApiによるマウスの動き

于 2015-12-12T16:12:51.380 に答える
0

Firefox が認証ポップアップを簡単に表示しないようにするには、以下のようにセットアップ段階で認証の詳細を含めるようにプロキシ URL を設定してください。

var myProxy = user + ":" + pass + "@" + proxyIP + ":" + proxyPORT;
options.SetPreference("network.proxy.type", 1);
options.SetPreference("network.proxy.http", myProxy);
options.SetPreference("network.proxy.http_port", proxyPORT);
options.SetPreference("general.useragent.override", useragent);
driver = new FirefoxDriver(driverService, options);
于 2019-01-05T08:26:29.633 に答える