因爲涉及到linux安裝(和heroku),所以我是個noob,所以如果這個問題很基本,請大家道歉。用heroku上的chrome驅動運行selenium:`找不到chrome二進制`
我想在Heroku上運行selenium webkit(在ruby中)。我面臨一個難題,即我的腳本無法找到Chrome二進制文件。
事實上,我鉻本身的工作:
~ $ chromedriver
Starting ChromeDriver 2.22.397932 (282ed7cf89cf0053b6542e0d0f039d4123bbb6ad) on port 9515
Only local connections are allowed.
chromedriver
是,我從/app/vendor/bundle/bin/chromedriver
複製的文件,只是爲了更容易了。 chromedriver
文件存在,因爲我安裝了chromedriver-helper gem。該寶石應該使二進制文件可用於紅寶石進程,但沒有。
我也嘗試明確設置路徑,例如Selenium::WebDriver::Chrome.driver_path = 'chromedriver'
在我的紅寶石代碼中,上述文件位於根類別中。
這一切都完美地在本地(帶或不帶driver_path
)
可能是什麼原因?我從幾年前就讀過this SO thread,但它似乎已經過時了。任何想法將不勝感激!
錯誤跟蹤:
~ $ 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>'
UPDATE:
我試圖與AWS EC2服務器相同(例如推出,克隆混帳回購協議,安裝了所有的依賴)。同樣的情況也發生在那裏。也就是說,能夠從終端執行chromedriver,但在運行腳本時看到相同的錯誤。
你有沒有考慮過運行[Poltergeist](https://github.com/teampoltergeist/poltergeist)呢? –
@IlyaVassilevsky不,我還沒有試過Poltergeist。我不知道這個錯誤是否與有「頭」的chromedriver有關聯 –
鏈接的SO問題聽起來對我來說就像它正是你遇到的問題 –