Trong bản kiểm tra hệ thống Rails 5.1, trình điều khiển được sử dụng được đặt bởi cuộc gọi driven_by
trong ApplicationSystemTestCase (test/application_system_test_case.rb). Giả sử bạn đã đăng ký lái xe Capybara-webkit của bạn là 'webkit' bạn sẽ có thể để làm
driven_by :webkit
Một tùy chọn khác tiềm năng nếu bạn sử dụng Chrome 59+ trên linux/mac là sử dụng không đầu chrome
Capybara.register_driver :headless_chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome, :args => ['headless'])
end
và sau đó kiểm tra trong trường hợp lớp học của bạn
driven_by :headless_chrome
Cung cấp cho bạn một phiên bản không đầu của chrome nên không ai trong số các vấn đề về Capybara-webkit/poltergeist không hỗ trợ các chuẩn web hiện hành. Thật không may hiện chromedriver có vấn đề với các phương thức hệ thống JS (cảnh báo, xác nhận, nhanh chóng - workaround trong chi nhánh chủ capybara) và treo cứng nếu bạn cố gắng đóng cửa sổ trong các thử nghiệm của bạn. Hy vọng rằng 2 vấn đề đó sẽ sớm được khắc phục. Cũng lưu ý rằng đường ray 5.1 nên đã loại bỏ sự cần thiết cho database_cleaner đối với hầu hết mọi người thử nghiệm vì nó đã xử lý việc chia sẻ một kết nối cơ sở dữ liệu duy nhất giữa nhiều luồng trong chế độ thử nghiệm.
Nguồn
2017-05-05 20:26:55
cảm ơn! "Giả sử bạn đã đăng ký trình điều khiển capybara-webkit của bạn là 'webkit'" - làm cách nào để thực hiện việc này? –
@JohnBachir sử dụng 'Capybara.register_driver' - khi bạn bao gồm capybara-webkit trong dự án của bạn sẽ có một đăng ký tự động - bạn chỉ cần thay đổi điều đó nếu bạn cần thay đổi cài đặt chỉ có thể được định cấu hình thông qua đăng ký trình điều khiển - https : //github.com/teamcapybara/capybara#configuring-and-adding-drivers –
Để tránh một thông báo không dùng nữa, bạn sẽ cần sử dụng cú pháp ['add_argument' của' Selenium :: WebDriver :: Chrome :: Tùy chọn'] (https://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver/Chrome/Options.html#add_argument-instance_method). – croceldon