首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自chrome 85版以来在Heroku上启动无头铬时(ruby)

自chrome 85版以来在Heroku上启动无头铬时(ruby)
EN

Stack Overflow用户
提问于 2021-02-07 12:59:17
回答 1查看 553关注 0票数 0

问题因重复而结束:

  1. 这个问题是用红宝石写的,而不是python和

  1. 我在那个线程上尝试了解决方案,没有什么改变。编辑我的问题补充一下。

我有一个Heroku应用程序运行构建包:

https://github.com/heroku/heroku-buildpack-google-chrome/

https://github.com/heroku/heroku-buildpack-chromedriver

我的设置与在chrome buidlpack上描述的相同:

代码语言:javascript
复制
chrome_bin = ENV.fetch('GOOGLE_CHROME_SHIM', nil)

chrome_opts = chrome_bin ? { "chromeOptions" => { "binary" => chrome_bin } } : {}

Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new(
    app,
    browser: :chrome,
    desired_capabilities: Selenium::WebDriver::Remote::Capabilities.chrome(chrome_opts)
  )
end

Capybara.javascript_driver = :chrome
session = Capybara::Session.new(:chrome)
session

我在用宝石

gem "selenium-webdriver“

在谷歌Chrome在2020年9月升级到85版之前,这一切都非常顺利。现在它大约成功了5次中的1次,其余4次我得到了这样的错误:

代码语言:javascript
复制
    2021-02-07T12:43:42.670067+00:00 app[worker.1]: 4 TID-1uto WARN: Selenium::WebDriver::Error::UnknownError: unknown error: session deleted because of page crash
2021-02-07T12:43:42.670068+00:00 app[worker.1]: from unknown error: cannot determine loading status
2021-02-07T12:43:42.670069+00:00 app[worker.1]: from tab crashed
2021-02-07T12:43:42.670070+00:00 app[worker.1]: (Session info: headless chrome=88.0.4324.150)
2021-02-07T12:43:42.670150+00:00 app[worker.1]: 4 TID-1uto WARN: #0 0x55e07c1cf199 <unknown>
2021-02-07T12:43:42.670151+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/response.rb:72:in `assert_ok'
2021-02-07T12:43:42.670152+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
2021-02-07T12:43:42.670152+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/http/common.rb:88:in `new'
2021-02-07T12:43:42.670153+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/http/common.rb:88:in `create_response'
2021-02-07T12:43:42.670153+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/http/default.rb:114:in `request'
2021-02-07T12:43:42.670153+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/http/common.rb:64:in `call'
2021-02-07T12:43:42.670154+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/bridge.rb:167:in `execute'
2021-02-07T12:43:42.670154+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/w3c/bridge.rb:567:in `execute'
2021-02-07T12:43:42.670155+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/w3c/bridge.rb:220:in `set_window_rect'
2021-02-07T12:43:42.670155+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/remote/w3c/bridge.rb:183:in `resize_window'
2021-02-07T12:43:42.670156+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/common/window.rb:123:in `resize_to'

我尝试过向chrome添加额外的参数(即使buildpack自动添加它们),但没有效果。

我补充了有关这个解决方案的两个论点:

未知错误:会话因页崩溃而被删除,从未知错误:无法确定加载状态从选项卡崩溃与ChromeDriver硒

问题依然存在。

代码语言:javascript
复制
chrome_opts = { "chromeOptions" => { "binary" => chrome_bin#,
                                          args: %w[headless disable-gpu no-sandbox disable-dev-shm-usage]
                                          } }

但还是没有运气。

所以我的问题是:

代码语言:javascript
复制
How do I tell the buildpack to stick to chrome version 84? or

How do I avoid the error from happening on version 85 and above?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-02-07 14:13:36

代码语言:javascript
复制
Capybara.register_driver :chrome do |app|
  Capybara::Selenium::Driver.new app, browser: :chrome,
    options: Selenium::WebDriver::Chrome::Options.new(args: %w[headless disable-gpu disable-dev-shm-usage])
end

Capybara.javascript_driver = :chrome

这让它起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66088221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档