首页 > 解决方案 > C# selenium chromedriver 代理身份验证

问题描述

我用 c# 在 Visual Studio 中编写了一个自动化工具。

我在 chromedriver 中使用 selenium。我的会话需要代理用户通过身份验证。但我尝试了很多次和很多来源,但没有奏效。

如何基本上用户为我的 chromedriver 会话传递 ip 端口代理。感谢帮助。

标签: c#seleniumproxyselenium-chromedriver

解决方案


有几个选项。

ChromeOptions使用和配置代理org.openqa.selenium.Proxy

如果您希望该解决方案易于移植以在其他系统上运行,您可以尝试使用ChromeOptionsand配置代理org.openqa.selenium.Proxy。这里会有一些额外的方法来配置你的代理,但我们需要知道支持什么类型的代理和认证类型。

// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);

// Add a ChromeDriver-specific capability.
ChromeDriver driver = new ChromeDriver(options);

使用代理配置创建新的 chrome 配置文件

或者,您可以为配置了代理的 chrome 创建配置文件,并告诉 chrome 驱动程序使用它。除非您将其容器化,否则即使不是不可能,也很难在没有手动设置的情况下移植到其他系统,但这超出了这里的范围。

从 chrome 71 开始,前往 chrome 设置chrome://settings/并选择管理其他人。创建一个新人来代表您的代理配置文件。使用浏览器配置代理,就像通常手动连接的方式一样。

找到您的个人资料的路径,例如:C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Profile 1如果您在 Windows 上。chrome://version/您可以通过导航和查找轻松找到Profile Path

利用ChromeOptions在启动时为 chrome 设置用户数据目录的选项

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");

chromedriver文档中提取的一些片段


推荐阅读