2011-07-25 34 views
20

Đối với kịch bản Cucumber trên ứng dụng Rails 3.1 của tôi, tôi đã sử dụng thẻ @javascript, vì vậy Selenium được kích hoạt. tôi nhận được lỗi sau:Dưa chuột; Selenium WebDriver - cách sử dụng Google Chrome làm trình duyệt thử nghiệm thay vì Firefox

Could not find Firefox binary (os=macosx). Make sure Firefox is installed or set the path manually with Selenium::WebDriver::Firefox::Binary.path= (Selenium::WebDriver::Error::WebDriverError) 

Nếu có thể, tôi muốn sử dụng Google Chrome làm trình duyệt - không Firefox (mà tôi đã không được cài đặt). Điều này có thể không? Có thể làm gì?

Thực tế, Cucumber/Selenium có phát hiện trình duyệt và sử dụng không?

==== EDIT ====

Sau khi thêm

Capybara.register_driver :selenium do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :chrome) 
end 

... đến các tính năng/support/env.rb, bây giờ tôi nhận được lỗi này:

Unable to find the chromedriver executable. Please download the server from http://code.google.com/p/chromium/downloads/list and place it somewhere on your PATH. More info at http://code.google.com/p/selenium/wiki/ChromeDriver. (Selenium::WebDriver::Error::WebDriverError) 
    ./features/step_definitions/web_steps.rb:45:in `/^(?:|I)am on (.+)$/' 
    features/update_memories.feature:11:in `Given I am on the home page' 

Tôi đã tải xuống từ here và tôi đã thử đưa tệp thực thi chromedriver vào/usr/bin, nhưng tôi vẫn gặp lỗi ở trên.

==== EDIT 2 ====

Sau khi đi một bước xa hơn và chạy "sudo chmod + x/usr/bin/chromedriver" như đề xuất dưới đây, bây giờ tôi nhận được một lỗi mới sau khi chạy dưa chuột :

@javascript 
    Scenario: navigate to memory update page from home page    # features/update_memories.feature:11 
    Given I am on the home page          # features/step_definitions/web_steps.rb:44 
     unable to connect to chromedriver http://127.0.0.1:57870 (Selenium::WebDriver::Error::WebDriverError) 
     ./features/step_definitions/web_steps.rb:45:in `/^(?:|I)am on (.+)$/' 
     features/update_memories.feature:12:in `Given I am on the home page' 
    When I activate the edit memory switch for the memory "I played" # features/step_definitions/memories/memory_steps.rb:5 
    Then I should be on the edit memory page for the memory "I played" # features/step_definitions/web_steps.rb:187 
     PGError: server closed the connection unexpectedly 
     This probably means the server terminated abnormally 
     before or while processing the request. 
     : ROLLBACK (ActiveRecord::StatementInvalid) 

Giúp đánh giá cao! Đến gần hơn ...

Trả lời

31

Đối với capybara, hãy thêm số này vào env.rb

Capybara.register_driver :selenium do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :chrome) 
end 

Tải xuống Chrome driver executable và sao chép nó trong đường dẫn của bạn, ví dụ: /usr/bin/ và làm cho nó thực thi

$ sudo chmod +x /usr/bin/chromedriver 
+1

Được rồi, tôi đã tiến thêm một bước với lệnh chmod mà bạn đã chỉ định (cảm ơn!), Nhưng bây giờ tôi gặp phải một lỗi mới. Tôi đang cập nhật câu hỏi của mình ngay bây giờ. – dmonopoly

+1

FWIW, tôi có thể cài đặt chromedriver với Homebrew, nhưng cần thêm/usr/local/bin vào Textmate PATH của tôi trong Preferences -> Advanced -> Shell Variables – orbiteleven

+0

Ai đó cho người này kiểm tra câu trả lời đúng! –

0

Thử thay đổi cài đặt "* chrome" thành "* googlechrome" trong chức năng thiết lập lớp học.

+1

Hmm, trong những tập tin? – dmonopoly

+0

Không. Bản thân Selenium có các tùy chọn * chrome vs * googlechrome khó hiểu, nhưng ở Capybara các tùy chọn ít điên rồ hơn: firefox vs: chrome. –

1

Nếu bạn đang sử dụng Capybara thử này

Capybara.register_driver :selenium do |app|
    Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

Xem capybara docs để biết thêm chi tiết (đặc biệt là có một cái nhìn vào cấu hình và thêm phần điều khiển)

+0

Tôi đã làm theo những gì bạn đề xuất, nhưng tôi gặp phải một lỗi mới (xem câu hỏi được cập nhật) ... bất kỳ cơ hội nào bạn có thể giúp đỡ và cập nhật câu trả lời của bạn? – dmonopoly

0

thử đặt con đường của trình điều khiển chrome trong biến PATH của bạn nếu bạn đang ở trên một distro Linux với bash.

Capybara.register_driver: selenium do | app | Capybara :: Selenium :: Driver.new (ứng dụng,: trình duyệt =>: chrome) kết thúc

Tải xuống trình điều khiển Chrome thực thi và sao chép trong đường dẫn của bạn, ví dụ:/ Usr/bin/và làm cho nó thực thi

$ sudo chmod + x/usr/bin/chromedriver

này làm việc cho tôi

3

Hôm nay là cách dễ nhất để có được những chromedriver thực thi dường như được cài đặt đá quý chromedriver-helper. Vui lòng xem https://github.com/flavorjones/chromedriver-helper để biết chi tiết.

Bên cạnh đó cài đặt đá quý bạn sẽ phải cấu hình môi trường của bạn theo cách tương tự như đã được đề cập trong một số câu trả lời khác:

Capybara.register_driver :selenium do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :chrome) 
end
1
Capybara.default_driver = :chrome 
     Selenium::WebDriver::Chrome::Service.executable_path = '/usr/local/bin/chromedriver' # specify the path of chromedriver 

      Capybara.register_driver :chrome do |app| 
      Capybara::Selenium::Driver.new(app, :browser => :chrome) 
      end 
Các vấn đề liên quan