2016-03-21 11 views
6

Sto testando il selenio in esecuzione con phantomjs da Ruby on Rails. Sto testando localmente sul mio computer.Ruby on Rails non è in grado di caricare tale file - selenium-webdriver Errore

Il seguente codice funziona bene nel mio test di script Ruby quando corro "ruby test.rb"

def google_title 
    require 'selenium-webdriver' 
    driver = Selenium::WebDriver.for :phantomjs 
    driver.navigate.to "https://www.google.com" 
    page_title = driver.title 
    puts page_title 
    end 

    google_title 

ho più o meno lo stesso codice nel mio file application_controller.rb:

def google_title 
    require 'selenium-webdriver' 
    driver = Selenium::WebDriver.for :phantomjs 
    driver.navigate.to "https://www.google.com" 
    page_title = driver.title 
    render text: page_title 
    end 

Ma quando eseguo la mia app ottengo un errore "impossibile caricare tale file - selenium-webdriver".

enter image description here

ho aggiunto questo al mio Gemfile e corse bundle install ma ottenere lo stesso errore.

gem 'selenium-webdriver', '~> 2.45' 

Quando si esegue la lista gem --local mostra che il selenio è installato.

Qualsiasi aiuto sarebbe apprezzato.

Aggiornamento:

ho corso quasi esattamente lo stesso codice come sopra ma con watir-WebDriver e ottenuto gli stessi risultati. Lo script Ruby funzionava bene da solo, ma forniva un errore "impossibile caricare tale file" per watir-webdriver quando provavo a eseguirlo da Rails.

Ho eseguito un altro test con nokogiri e ha funzionato correttamente. Sia per se stesso che in Rails.

Update2:

Sembra essere qualcosa che sto facendo e non il mio ambiente di test. Ho appena eseguito lo stesso codice su un IDE on-line e ottenuto lo stesso tipo di errore:

enter image description here

Update3:

Ecco il contenuto completo del file application_controller.rb quando faccio funzionare il prova con watir-webdriver e headless. Ottengo gli stessi risultati. Forse sto impostando qualcosa di sbagliato qui?

class ApplicationController < ActionController::Base 
    def google_title 
    require 'watir-webdriver' 
    require 'headless' 
    headless = Headless.new 
    headless.start 
    b = Watir::Browser.start 'www.google.com' 
    page_title = b.title 
    b.close 
    headless.destroy 
    render text: page_title 
    end 
end 

enter image description here

+0

io non sono in grado di riprodurre il problema. Ho provato esattamente gli stessi passaggi e ho installato 'selenium-webdriver' versione' 2.53.0' e ha funzionato come un incantesimo. –

+0

Strano. Ho aggiunto l'intero contenuto del file application_controller.rb solo per assicurarmi che non manchi qualcosa di semplice. – MrAutoIt

+0

https://github.com/firangistan/webdriver-test Controlla se questa applicazione funziona per te. –

risposta

0

avere riavviato il webrick, puma ... server?

funziona come un fascino.

gem 'selenium-webdriver', '~> 2.45'

bundle install

su Mac:

brew install phantomjs

class ApplicationController < ActionController::Base 

    protect_from_forgery with: :exception 
    #no need for require 
    def google_title 
    driver = Selenium::WebDriver.for :phantomjs 
    driver.navigate.to "https://www.google.com" 
    page_title = driver.title 
    render text: page_title 
    end 
end 

routes.rb:

get 'google-title' => 'application#google_title'

http://127.0.0.1:3000/google-title 

risultato Google

Problemi correlati