c# - C# selenium chromedriver 代理身份验证
问题描述
我用 c# 在 Visual Studio 中编写了一个自动化工具。
我在 chromedriver 中使用 selenium。我的会话需要代理用户通过身份验证。但我尝试了很多次和很多来源,但没有奏效。
如何基本上用户为我的 chromedriver 会话传递 ip 端口代理。感谢帮助。
解决方案
有几个选项。
ChromeOptions
使用和配置代理org.openqa.selenium.Proxy
如果您希望该解决方案易于移植以在其他系统上运行,您可以尝试使用ChromeOptions
and配置代理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");
推荐阅读
- objective-c - 如果我使用 facebook messenger sdk 它显示,如何通过打开 messenger 应用程序共享到 messenger 的链接
- angular - 与 Null 未定义连接在 Angular 打字稿中不起作用
- hadoop - 如何将本地 Hadoop 配置精确模拟到 GCP Dataproc
- java - java中super关键字和继承类的区别
- php - Eloquent 返回关系结果而不是 id
- ios - 无法在 javapns 的 Apple 推送通知中设置标题字段“apns-push-type”
- pyspark-sql - 使用 pyspark 迭代加载多个 parquet 文件
- snowflake-cloud-data-platform - 尝试从命令行执行时,Snow Client 的 SSL 身份验证错误
- android - 在 Marshmallow 6.0.1 上未找到 Android 动态交付资源异常
- javascript - React Hook useEffect 缺少依赖项:'notes',如何解决?