C#硒chromedriver验证代理

时间:2019-03-30 21:00:57

标签: c# selenium proxy

以下C#的意思是打开一个硒驱动程序,并通过身份验证连接到代理。 chrome警报在driver.Navigate()。GoToUrl(...)上弹出,无法越过。这意味着我无法在try {} catch {}中处理警报。

如何验证代理?

到目前为止,我找到的最接近的是this post

using System;
using System.Net;
using System.Net.Sockets;

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;

namespace ConnectProxy
{
    internal class Program
    {
        private static void Main()
        {

            var proxy = new
            {
                Ip = "XXX",
                Username = "YYY",
                Password = "ZZZ",
                Port = "80"
            };

            string PROXY = proxy.Ip + ":" + proxy.Port;

            Proxy pro = new Proxy();
            pro.HttpProxy = PROXY;
            pro.FtpProxy = PROXY;
            pro.SslProxy = PROXY;

            ChromeOptions options = new ChromeOptions();
            options.Proxy = pro;

            IWebDriver driver = new ChromeDriver(options);
            driver.Navigate().GoToUrl("https://" + proxy.Username + ":" + proxy.Password + "@" + "whatismyipaddress.com/");

            try
            {

                WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(15));
                wait.Until(c => c.FindElement(By.Id("content-section")));

                IAlert alert = driver.SwitchTo().Alert();
                alert.SetAuthenticationCredentials(proxy.Username, proxy.Password);
                alert.Accept();
            }
            catch { }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

根据selenium documents,尝试通过硒进行操作不是可用资源。相反,根据post,您需要在chrome中添加扩展名,其中包含代理主机和身份验证详细信息。