run Selen mit Chrome-Treiber auf Heroku: `Chrome-Binärdatei kann nicht gefunden werden`

Ich bin ein Noob, wenn es um Linux-Setup (und Heroku) geht, also entschuldige mich, wenn diese Frage grundlegend ist.

Ich möchte ein Selen-Webkit (in Ruby) auf Heroku ausführen. Ich habe das Problem, dass mein Skript die Chrome-Binärdatei nicht finden kann.

Ich habe tatsächlich Chrom für sich arbeiten lassen:

~ $ chromedriver
Starting ChromeDriver 2.22.397932 (282ed7cf89cf0053b6542e0d0f039d4123bbb6ad) on port 9515
Only local connections are allowed.

chromedriver ist eine Datei, die ich von @ kopiert ha/app/vendor/bundle/bin/chromedriver, nur um es vorerst einfacher zu machen.chromedriver Datei existiert, weil ich @ installiert ha Chromedriver-Helfer Edelstein. Der Edelstein sollte die Binärdatei für Ruby-Prozesse verfügbar machen, tat es aber nicht.

Ich habe auch versucht, den Pfad explizit festzulegen, z.Selenium::WebDriver::Chrome.driver_path = 'chromedriver' in meinem Ruby-Code, wobei sich die oben genannte Datei in der Stammkategorie befindet.

Es funktioniert alles perfekt lokal (mit oder ohnedriver_path)

Was kann die Ursache sein? Ich habe gelesendieser SO Thread von vor Jahren, aber es scheint mir veraltet. Irgendwelche Ideen wäre sehr dankbar!

Fehlerspur:

~ $ ruby bin/run.rb
/app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/response.rb:70:in `assert_ok': unknown error: cannot find Chrome binary (Selenium::WebDriver::Error::UnknownError)
  (Driver info: chromedriver=2.22.397932 (282ed7cf89cf0053b6542e0d0f039d4123bbb6ad),platform=Linux 3.13.0-91-generic x86_64)
    from /app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/response.rb:34:in `initialize'
    from /app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/http/common.rb:78:in `new'
    from /app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/http/common.rb:78:in `create_response'
    from /app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/http/default.rb:90:in `request'
    from /app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/http/common.rb:59:in `call'
    from /app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/bridge.rb:649:in `raw_execute'
    from /app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/bridge.rb:123:in `create_session'
    from /app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/remote/bridge.rb:87:in `initialize'
    from /app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/chrome/bridge.rb:48:in `initialize'
    from /app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/common/driver.rb:64:in `new'
    from /app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver/common/driver.rb:64:in `for'
    from /app/vendor/bundle/ruby/2.2.0/gems/selenium-webdriver-2.53.4/lib/selenium/webdriver.rb:84:in `for'
    from /app/lib/mealpass_orderer.rb:12:in `initialize'
    from /app/lib/mealpass_orderer.rb:8:in `new'
    from /app/lib/mealpass_orderer.rb:8:in `run'
    from bin/run.rb:3:in `<main>'

AKTUALISIEREN

Ich habe dasselbe mit dem AWS EC2-Server versucht (gestartete Instanz, geklontes Git Repo, alle Abhängigkeiten installiert). Das gleiche passiert auch dort. Das heißt, Sie können den Chromedriver vom Terminal ausführen, sehen jedoch denselben Fehler, wenn Sie das Skript ausführen.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage