我正在使用 Selenium 来自动化一些事情,我需要使用代理,但我的代理使用基本访问认证所以我需要输入用户和密码,我已经使用:--proxy-server=http://127.0.0.1:8001
arg 来设置代理服务器,经过一番研究,我发现了这个 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
输入电源外壳?
- Selenium- + 代理 + 防火墙 + 用户名 + 密码 ==我觉得似曾相识
$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
大多数平台的手动代理设置允许指定用于代理登录的明文用户名/密码。Chrome 未实现此功能,也不会使用代理设置中嵌入的任何凭据。
代理身份验证将通过普通流程来查找凭证。
我想到的解决方法:
- 使用正确的设置手动创建配置文件,复制文件夹,然后通过选项将 Chrome 指向它
--user-data-dir
。 - 有一些扩展程序会在浏览器打开时自动执行代理登录。
- 在本地生成
stunnel
并将其放在“中间”(Chrome --no pwd--> stunnel --user:pwd--> real proxy)。参见如何使用 Firefox 或 Chrome 链接代理?
如果你很好奇并且想尝试一下(谁知道呢,也许 Chrome 有一天会支持它!),URL 应该是http://username:[email protected]:8001