如何通过参数在无头模式下在 Chrome/Chromium 中设置代理服务器的用户和密码?

如何通过参数在无头模式下在 Chrome/Chromium 中设置代理服务器的用户和密码?

我正在使用 Selenium 来自动化一些事情,我需要使用代理,但我的代理使用基本访问认证所以我需要输入用户和密码,我已经使用:--proxy-server=http://127.0.0.1:8001arg 来设置代理服务器,经过一番研究,我发现了这个 arg:--proxy-user-and-password但似乎无效。是否可以通过 arg 来配置它?

答案1

  • 编辑

在此处输入图片描述

search_form = browser.find_element_by_id('search_form_input_homepage')
search_form.send_keys('username')
search_form.send_keys('password')
search_form.submit() 

查看更多这里

也许使用Sendkeys输入

在此处输入图片描述

$wshell = New-Object -ComObject wscript.shell
$obj = New-Object -com Wscript.Shell
$wshell.Run('Chrome'),9
Start-Sleep -m 700
[System.Windows.Forms.SendKeys]::SendWait("{TAB}") 
Start-Sleep -m 250
[System.Windows.Forms.SendKeys]::SendWait("username") 
Start-Sleep -m 250
[System.Windows.Forms.SendKeys]::SendWait("pasword")
Start-Sleep -m 250
[System.Windows.Forms.SendKeys]::SendWait("~")`

您可能需要调整超时时间和导航界面所需的按键

[System.Windows.Forms.SendKeys]::SendWait("{TAB}{TAB}") interface/selenium 
Start-Sleep -m `550

答案2

我认为目前还不可能:https://chromium.googlesource.com/chromium/src/+/HEAD/net/docs/proxy.md#proxy-credentials-in-manual-proxy-settings

大多数平台的手动代理设置允许指定用于代理登录的明文用户名/密码。Chrome 未实现此功能,也不会使用代理设置中嵌入的任何凭据。

代理身份验证将通过普通流程来查找凭证。

我想到的解决方法:

  • 使用正确的设置手动创建配置文件,复制文件夹,然后通过选项将 Chrome 指向它--user-data-dir
  • 有一些扩展程序会在浏览器打开时自动执行代理登录。
  • 在本地生成stunnel并将其放在“中间”(Chrome --no pwd--> stunnel --user:pwd--> real proxy)。参见如何使用 Firefox 或 Chrome 链接代理?

如果你很好奇并且想尝试一下(谁知道呢,也许 Chrome 有一天会支持它!),URL 应该是http://username:[email protected]:8001

答案3

当您缺乏向代理提供用户名和密码的方法时,您或许可以使用两步代理来解决这个问题:

  1. 计算机上的本地代理服务器,无需用户名和密码
  2. 本地代理应该使用用户名和密码连接到真正的外部代理。

一个可能的解决方案是安装节点.js和...一起 代理密码自动程序,但这取决于您的环境。

如果您没有合适的代理产品,或者上述内容与您的环境无关,我需要有关环境的更多详细信息才能建议合适的产品。

相关内容