Selenium 代理 IP 地址配置 IP 不正确

Selenium Proxy IP Address Configuration IP Not Correct

我在巴西paid/rented有一个代理服务器

String proxyAddress = "myusername:myuserpass123@196.18.199.51:15464"
proxy.setAutodetect(false);
proxy.setHttpProxy(proxyAddress);
proxy.setSslProxy(proxyAddress);
chromeOptions.setCapability(CapabilityType.PROXY, proxy);
WebDriver webDriver = new ChromeDriver(chromeOptions);

我在本地计算机上使用 运行 Web 驱动程序,我在印度尼西亚。当 chrome 浏览器打开时,我可以调试并确保功能设置正确:我可以看到手动代理设置设置为上面的正确地址字符串。 但是,当 webdriver 打开时 https://api.ipify.org/?format=json, it still returns my IP in Indonesia. What am I Missing here? My expectation is because I had configured webdriver to be proxied by a server in Brazil, https://api.ipify.org/?format=json 应该 return 巴西 IP 地址?

使用 Selenium 4 双向 API (https://www.selenium.dev/documentation/webdriver/bidirectional/bidi_api/)

Register Basic Auth. Some applications make use of browser authentication to secure pages. With Selenium, you can automate the input of basic auth credentials whenever they arise.

//C#
//Console App .NET 6

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

Proxy proxy = new Proxy();
var proxyAddress = "address:port";
proxy.HttpProxy = proxyAddress;
proxy.SslProxy = proxyAddress;

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

IWebDriver driver = new ChromeDriver(options);

NetworkAuthenticationHandler handler = new NetworkAuthenticationHandler()
{
    UriMatcher = (d) => d.Host.Contains("your-domain.com"), // or set it `true` to enable proxy everywhere
    Credentials = new PasswordCredentials("admin", "password")
};

INetwork networkInterceptor = driver.Manage().Network;
networkInterceptor.AddAuthenticationHandler(handler);
await networkInterceptor.StartMonitoring();

driver.Navigate().GoToUrl("https://api.ipify.org/?format=json");

await networkInterceptor.StopMonitoring();