具有套接字连接的Python webdriver

2024-04-20 12:39:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我被困在公司防火墙后面,需要能够运行我的webdriver测试。我在9191端口有一个开放的socks5隧道,可以用来浏览互联网

我有以下webdriver/chromedriver代码:

options = webdriver.ChromeOptions()

proxy_string = "ec2-*.*.*.compute-1.amazonaws.com" + ":" + '3128'
socks_proxy_string = "socks5://"+ proxy_string+":9191"

options.add_extension(basedir+"/ProxyAutoAuth.crx")


prox = Proxy()
prox.proxy_type = ProxyType.MANUAL
# prox.http_proxy = proxy_string
prox.http_proxy = socks_proxy_string
prox.socks_proxy = proxy_string
prox.ssl_proxy = socks_proxy_string

capabilities = webdriver.DesiredCapabilities.CHROME
prox.add_to_capabilities(capabilities)


driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH,desired_capabilities=capabilities, options=options)



driver.get("chrome-extension://ggmdpepbjljkkkdaklfihhngmmgmpggp/options.html")
time.sleep(3)

driver.find_element_by_id("login").send_keys("user")
driver.find_element_by_id("password").send_keys("pass")
driver.find_element_by_id("retry").clear()
driver.find_element_by_id("retry").send_keys("2")

driver.find_element_by_id("save").click()


driver.get('https://api.ipify.org'):

这已经在家里运行了,允许我使用带有basic auth的amazonec2squid代理来运行我的测试。如您所见,我试图通过修改代码来使用现有的隧道

^{pr2}$

在家工作是为了:

socks_proxy_string = "socks5://"+ proxy_string+":9191"

但我得到了

ERR_PROXY_CONNECTION_FAILED

错误。我如何通过socks5隧道引导请求?在


Tags: sendidstringbydriverproxelementfind
1条回答
网友
1楼 · 发布于 2024-04-20 12:39:49

看起来端口被添加了两次到socks_proxy_字符串中-因此它将以

 ...compute-1.amazonaws.com:3128:8181

如果本地主机上有隧道,则socks_proxy_字符串应为socks5://本地主机:9191在

相关问题 更多 >