2016-03-21 18 views
6

Tôi đang thử chạy selenium webdriver với phantomjs từ Ruby on Rails. Tôi đang thử nghiệm cục bộ trên máy tính của mình.Ruby on Rails không thể tải tập tin như vậy - selenium-webdriver Lỗi

Các mã sau chạy tốt trong thử nghiệm của Ruby kịch bản của tôi khi tôi chạy "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 

Tôi có khá nhiều cùng mã trong tập tin application_controller.rb tôi:

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 

Nhưng khi tôi chạy ứng dụng của tôi, tôi nhận được lỗi "không thể tải tệp như vậy - selenium-webdriver".

enter image description here

Tôi đã thêm này để Gemfile của tôi và chạy gói cài đặt nhưng gặp phải lỗi tương tự.

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

Khi tôi chạy danh sách đá quý - cục bộ, nó hiển thị selen được cài đặt.

Mọi trợ giúp sẽ được đánh giá cao.

Cập nhật:

tôi chạy gần như chính xác mã tương tự như trên nhưng với watir-webdriver và nhận được kết quả tương tự. Các kịch bản Ruby chạy tốt bởi nó là tự nhưng đã đưa ra một "không thể tải tập tin như vậy" lỗi cho watir-webdriver khi tôi đã cố gắng để chạy nó từ Rails.

Tôi đã chạy một thử nghiệm khác với nokogiri và nó hoạt động tốt. Cả hai đều là bản thân và trong Rails.

Update2:

Nó dường như là một cái gì đó tôi đang làm và không phải môi trường thử nghiệm của tôi. Tôi chỉ cần chạy cùng mã trên một IDE trực tuyến và nhận được cùng một loại lỗi:

enter image description here

UPDATE3:

Dưới đây là toàn bộ nội dung của tập tin application_controller.rb khi tôi chạy thử nghiệm với watir-webdriver và không đầu. Tôi nhận được kết quả tương tự. Có lẽ tôi đang thiết lập một cái gì đó sai ở đây?

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

Tôi không thể tạo lại vấn đề này. Tôi đã thử các bước tương tự chính xác và cài đặt phiên bản 'selenium-webdriver'' 2.53.0' và nó hoạt động như một sự quyến rũ. –

+0

Lạ. Tôi đã thêm toàn bộ nội dung của tệp application_controller.rb chỉ để đảm bảo rằng tôi không thiếu gì đó đơn giản. – MrAutoIt

+0

https://github.com/firangistan/webdriver-test Kiểm tra xem ứng dụng này có phù hợp với bạn không. –

Trả lời

0

bạn đã khởi động lại webrick của bạn, puma ... máy chủ?

hoạt động như một sự quyến rũ.

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

bundle install

trên 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 

kết quả Google

Các vấn đề liên quan