我有这个代码工作,但我必须每次运行脚本时编写代理的用户和密码。有没有办法在提示符(用户/密码)中填写这两个字段?
proxy = {'host': "XXXXXXXXXXXXXXXXXXX", 'port': 12345, 'usr': "AAAAAAA", 'pwd': "BBBBBBB"}
fp = webdriver.FirefoxProfile()
fp.set_preference('network.proxy.type', 1)
fp.set_preference('network.proxy.http', proxy['host'])
fp.set_preference('network.proxy.http_port', int(proxy['port']))
fp.set_preference('network.proxy.no_proxies_on', 'localhost, 127.0.0.1')
fp.set_preference('signon.autologin.proxy', 'true')
driver = webdriver.Firefox(fp)
driver.get("http://www.whatsmyip.com")
答案 0 :(得分:0)
是否有任何具体原因要填写表单而不是在selenium.webdriver.common.proxy
中提供?您可以使用.set_preference
构建整个代理配置文件,但也可以通过fp.set_preference("network.proxy.socks_username", proxy['usr'])
fp.set_preference("network.proxy.socks_password", proxy['pwd'])
设置用户名和密码,因为您正在使用其余代码。尝试在代码中添加以下内容:
Proxy()
编辑(Proxy()
方法):
在不知道您的代理信息的情况下,可以尝试以下内容,这就是我使用的内容。它在FirefoxProfile()
之上使用了selenium的from selenium import webdriver
from selenium.webdriver.common.proxy import *
proxy = {'host': "XXXXXXXXXXXXXXXXXXX", 'port': 12345, 'usr': "AAAAAAA", 'pwd': "BBBBBBB"}
fp = webdriver.FirefoxProfile()
fp.set_preference('signon.autologin.proxy', 'true')
fp.set_preference('network.proxy.share_proxy_settings', 'false')
fp.set_preference('network.automatic-ntlm-auth.allow-proxies', 'false')
fp.set_preference('network.auth.use-sspi', 'false')
proxy_address = '%s:%s' % (proxy['host'], int(proxy['port']))
proxy_dict = {'proxyType': ProxyType.MANUAL,
'httpProxy': proxy_address,
'ftpProxy': proxy_address,
'sslProxy': proxy_address,
'noProxy': '',
'socksUsername': proxy['usr'],
'socksPassword': proxy['pwd']}
proxy_config = Proxy(proxy_dict)
driver = webdriver.Firefox(proxy=proxy_config, firefox_profile=fp)
功能。
ARGV.delete_if