selenium - 如何在 Heroku 上使用 Capybara/Firefox 和代理?我得到“代理服务器拒绝连接”
问题描述
我有以下代码:
Capybara.register_driver :selenium_headless do |app|
...
proxy = Selenium::WebDriver::Proxy.new(
http: proxy_address,
ssl: proxy_address
)
desired_caps = Selenium::WebDriver::Remote::Capabilities.firefox(
proxy: proxy
)
Capybara::Selenium::Driver.new(app, {
browser: :firefox,
desired_capabilities: desired_caps,
...
})
end
driver = Capybara::Session.new(:selenium_headless)
driver.visit('https://api.ipify.org')
browser_options
如果您删除所有代理业务(并放弃),该代码在本地以及在 Heroku 上都可以正常工作。
Heroku 上的此代码错误:
Selenium::WebDriver::Error::UnknownError (Reached error page: about:neterror?e=proxyConnectFailure&u=https%3A//api.ipify.org/&c=UTF-8&f=regular&d=Firefox%20is%20configured%20to%20use%20a%20proxy%20server%20that%20is%20refusing%20connections.)
该 URL 在本地如下所示:
当我打开 Selenium 调试日志Selenium::WebDriver.logger.level = :debug
时,我得到:
>>> http://127.0.0.1:4444/session/84439a4e-a26d-41f3-ae30-f61f508ca569/url | {"url":"https://api.ipify.org"}
{"value":{"error":"unknown error","message":"Reached error page: about:neterror?e=proxyConnectFailure&u=https%3A//api.ipify.org/&c=UTF-8&f=regular&d=Firefox%20is%20configured%20to%20use%20a%20proxy%20server%20that%20is%20refusing%20connections.","stacktrace":"WebDriverError@chrome://marionette/content/error.js:179:5\nUnknownError@chrome://marionette/content/error.js:484:5\nhandleReadyState@chrome://marionette/content/listener.js:273:21\nhandleEvent@chrome://marionette/content/listener.js:242:14\n"}
我的代理选项的记录大致如下"proxy":{"httpProxy":"207.000.00.00:0000","proxyType":"manual","sslProxy":"207.000.00.00:0000"}
在此先感谢您的帮助!
更新:我正在使用的代理服务与 Capybara 一起在外面工作。我用OpenURI
.
解决方案
推荐阅读
- node.js - 自适应卡片 - selectAction 不适用于 iOS 设备 Node.js 上的 MS Teams 应用程序
- c# - Twilio:可用号码 - 我可以获得多少个号码?
- html - ASP .NET linq 无法从视图访问会话
- xamarin.android - 为什么没有立即触发 BroadcastIntent
- jquery - 如何从分页laravel中的表格中过滤搜索?
- oop - 我无法弄清楚我的“副本”变量有什么问题
- java - 在 Maven 中编译 Python 源代码
- mysql - 在同一个 SQL 查询中同时使用 WHERE、CASE、AND、LIKE
- hive - Hive:无法理解示例结果中的统计信息
- c# - ASP.NET CORE 2.0 - [授权] 不阻止未经授权的用户访问其余 api