如何连接到 ChromeWebDriver 忽略系统默认代理

How to connect to ChromeWebDriver ignoring the system default proxy

提问人:Woozar 提问时间:12/20/2021 最后编辑:Woozar 更新时间:12/29/2021 访问量:461

问:

我正在为我们的门户网页进行 Selenium 测试(在 c#、dotnetcore2.1 中)。运行测试的系统(和我的开发虚拟机)已配置代理(Internet Explorer -> Settings -> Internet Options -> Connections -> LAN Settings -> Proxy Server)。此代理是访问外部所必需的,但不得用于从 c# 项目中的 selenium 客户端到 chrome webdriver api(在执行 chromewebdriver.exe 时打开)的连接。

我已经尝试将 localhost 添加到“不要对以以下方式开头的地址使用代理服务器:”设置中,如下所示:

my.domain;localhost

但它仍然无法连接到 Chromederiver。如果我禁用代理,则与 chromedriver 的连接不是问题。

我不想配置 chrome 应该使用的代理,但我想为与 chromewebdriver 本身的连接配置“无代理”。有人有什么想法吗?我在谷歌上得到了大量的点击,但它们都描述了如何为 chrome 本身配置代理。

为了澄清我的请求。我的 c# 代码片段如下所示:

using(var driver = new ChromeDriver(".") {
    driver.Navigate().GoToUrl("...");
}

Selenium.WebDriver 和 Selenium.WebDriver.ChromeDriver 通过 NuGet 安装。

C# http-proxy chrome-web-driver

评论

1赞 ojonasplima 12/29/2021
澄清一下:您想使用 Selenium 连接到现有的 chromedriver。正确?
0赞 Woozar 12/29/2021
我想从我的代码启动一个新的 ChromeDriver。(我更新了原来的问题)
0赞 ojonasplima 12/29/2021
您需要使用 chrome 标志来解决这个问题。你有如何使用它们的知识吗?它是 --proxy-server=“socks://localhost:8080”。如果您想尝试一下,只需在提示符上输入: 编辑:在您的驱动程序上,您将添加:start chrome --proxy-server="socks://localhost:8080"chromeOptions = ChromeOptions() chromeOptions.AddArgument('--proxy-server=' + [proxyhere])
0赞 Woozar 12/29/2021
但这会告诉 Chrome 在尝试启动 Chromederiver 时要使用哪个代理,而不是 C# 程序集使用哪个代理,对吧?chrome 中的代理工作正常,但我无法让测试程序集访问 chromedriver(可能通过一些 chromedriver api)
1赞 ojonasplima 12/29/2021
现在我抓住了你。不知道要做什么,但这种情况发生在驱动程序的初始化上,为此我建议查看方法/构造函数。ChromeDriverService​

答: 暂无答案